|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.02.2012, 01:42 | #1 |
Регистрация: 11.02.2012
Сообщений: 6
|
Обрезать bmp и установить прозрачность
Привет.
Загружаю точечный рисунок в память программы с помощью LoadImage (работаю на чистом WinAPI) При несовпадении размеров исходного и целевого прямоугольников: Функция BitBlt обрезает рисунок Функция TransparentBlt растягивает рисунок Но у меня появилась необходимость обрезать рисунок и сделать его фон прозрачным, т.е. выполнить обе функции подряд над одним и тем же рисунком. Оказалось, что это не так просто: при совпадении исходного и целевого устройств ничего не происходит, а при добавлении еще одного (промежуточного) совместимого устройства - тоже ничего не происходит. Необходимо, чтобы элементы дизайна хранились в одном файле BMP, а не каждый в отдельном. Подскажите, пожалуйста, как мне осуществить и обрезку рисунка, и установление прозрачного цвета одновременно? Это возможно с помощью стандартного GDI? Желательно подробно, так как хочу вникнуть в суть. |
18.02.2012, 02:26 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
читаем внимательно названия параметров и думаем как можно совместить все в один вызов. TransparentBlt способна делать тоже самое что и BitBlt. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
18.02.2012, 19:05 | #3 | |
Регистрация: 11.02.2012
Сообщений: 6
|
Цитата:
If the source and destination rectangles are not the same size, the source bitmap is stretched to match the destination rectangle. В переводе: Если источниковый и принимающие прямоугольники имеют разные размеры, исходный точечный рисунок растягивается так, чтобы соответствовать принимающему прямоугольнику. |
|
18.02.2012, 20:56 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
а про параметры xoriginSrc и yoriginSrc не читали?
их смысл тот же что и в BitBlt параметры nXSrc и nYSrc. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как установить прозрачность в TImage или TBitMap | X@OC | Компоненты Delphi | 6 | 23.11.2011 23:18 |
обрезать фото | SkrudjMakdak | JavaScript, Ajax | 4 | 09.06.2011 16:04 |
Как установить возможность выбора только bmp-файлов в Picture Editor? | Наки | Компоненты Delphi | 2 | 14.04.2011 22:03 |
Загрузка BMP в Simple Graph и сохранение в BMP формат | artemavd | Общие вопросы Delphi | 10 | 02.10.2010 14:19 |
Обрезать фото | Cpluser | Общие вопросы .NET | 5 | 15.04.2010 12:58 |