Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/56: Рейтинг темы: голосов - 56, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 05.02.2010
Сообщений: 7

Прозрачный Bitmap

05.02.2010, 07:47. Показов 10608. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток. Задумал я написать программу которая делает вид что красиво рисует ручкой всякие надписи. НО столкнулся с такой проблемой что при попытке заставить фон ручки быть прозрачным и при этом двигаться она исчезает совсем. Полагаю объяснение не слишком понятно поэтому вот пример:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
namespace trensparendImage
{
    public partial class Form1 : Form
    {
        Bitmap bmPen; //создаем битовые маски
        Bitmap bPen;
        Graphics grPen;
        int x,y;
 
        public Form1()
        {
            InitializeComponent();
            
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            x+=10; y+=10; // смещение картинки
            grPen.DrawImage(bPen,x,y); //перерисовка со смещением
            Cursor.Position = new Point(x, y); //контроль смещения
            pictureBox1.Image = bmPen; 
            pictureBox1.Refresh();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            bPen = new Bitmap("pen2.bmp");//получем картинку
            bmPen = new Bitmap(this.Width, this.Height);
            grPen = Graphics.FromImage(bmPen);
            bmPen.MakeTransparent(Color.White);
            grPen.DrawImage(bPen, 100, 100);
            pictureBox1.BackgroundImage = bmPen;
            pictureBox1.Refresh();
            x = 100; y = 100;
            timer1.Start();
        }
    }
В результате я вижу просто перемещающийся курсор, без картинки. если же убрать вот это:
C#
1
bmPen.MakeTransparent(Color.White);
то все работает нормально, но ручка появляется с белым фоном. книжки и поиск по форуму не помогли найти ответ на этот вопрос.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.02.2010, 07:47
Ответы с готовыми решениями:

Нарисовать прошлый Bitmap на новом так, чтобы небыл растянут рисунок, если новый Bitmap больше размером
Короче пытался сделать такое дело: Рисую фигуры на форме, когда отпускаю левую кнопку мыши (когда кнопка зажата, то растягивается например...

Прозрачный фон картинки программно
В фотошопе можно делать прозрачный фон, знает ли кто-нибудь алгоритм? Есть ли какие-нибудь функции в c# для этого?

Bitmap
Скажу сразу в с# я не очень силен. Rectangle bounds = Screen.PrimaryScreen.Bounds; int colourDepth =...

11
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
05.02.2010, 09:54
А нельзя просто использовать курсор с таким изображением?

Кстати, почему-то у меня меня цвет Transparent вообще не делает ничего прозрачным.
0
0 / 0 / 0
Регистрация: 05.02.2010
Сообщений: 7
05.02.2010, 09:58  [ТС]
Нельзя потому что изображение слишком большое.
0
Комбайнёр
 Аватар для MAcK
1606 / 704 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
05.02.2010, 10:05
А в PictureBox пробовали поставить Transporencolor = while; ?
0
0 / 0 / 0
Регистрация: 05.02.2010
Сообщений: 7
05.02.2010, 10:09  [ТС]
Цитата Сообщение от brugon Посмотреть сообщение
А в PictureBox пробовали поставить Transporencolor = while; ?
Не нашел у PictureBox такого свойства, можно поподробней что вы имели виду?
0
Комбайнёр
 Аватар для MAcK
1606 / 704 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
05.02.2010, 10:48
Нет такого свойства. Значит попробуйте так
0
0 / 0 / 0
Регистрация: 05.02.2010
Сообщений: 7
05.02.2010, 11:19  [ТС]
Цитата Сообщение от brugon Посмотреть сообщение
Нет такого свойства. Значит попробуйте так
Очень интересный урок, но, в данном случае мы можем извлечь отсюда только то как делать различной степени прозрачности цвета. Это к сожалению не решает проблему, фон с внешней картинки с помощью этого не убрать. В принципе способ который я использовал стандартный и предназначен именно для этого, почему он не работает непонятно.
0
118 / 119 / 20
Регистрация: 21.01.2010
Сообщений: 252
05.02.2010, 12:34
Предлагаю вместо BMP юзать PNG c прозрачным фоном, может поможет.

вот файл под рукой подобный был, попробуйте
Изображения
 
0
0 / 0 / 0
Регистрация: 05.02.2010
Сообщений: 7
08.02.2010, 06:28  [ТС]
Решил проблему другим путем. НО всем спасибо за помощь.
0
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
08.02.2010, 15:20
Каким путем?
0
 Аватар для LionMdS
2 / 2 / 1
Регистрация: 28.03.2009
Сообщений: 84
08.02.2010, 18:05
В свойствах формы есть опция TransparencyKey. Поставь TransparencyKey = White и все елементы на данной форме имеющие белый цвет будут прозрачными. Хотя лутче использовать какойто левый цвет, который вряд ли будет использоватся в программе.
0
0 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 7
30.01.2013, 18:10
спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.01.2013, 18:10
Помогаю со студенческими работами здесь

Bitmap в Bitmap
Привет! Как мне в один битмап записать другой, по координатам?

HTML в BitMap.
Задача такая: нужон сохранить HTML - файлик в бмп. Вот код. using System; using System.Data; using System.Drawing; using...

Разбиение Bitmap
Вообщем задача состоит в следующем: Исходное изображение разбить на 16 блоков (на 4 по горизонтали и 4 по вертикали), потом я произведу с...

Создание Bitmap
У меня есть массив 16-битных цифирей, как можно быстро сделать из них Bitmap (ч/б) для вывода в PictBox? Я нормирую все цифири на...

Резка Bitmap
вот кусок кода: int widthn = Math.Abs(pX1 - pX0); int heightn = Math.Abs(pY1 - pY0); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru