Можно ли объединить два или более разных BMP-изображения одного размера в один, накладываясь друг на друга? Точно так же, как это делалось в Windows XP MS Paint: вставка одного изображения в другое, при этом вторичный цвет был прозрачным.Наложение изображений одним изображением
ответ
Вы можете использовать Transparent
свойство TBitmap
к этому эффекту. Так как ваши растровые изображения имеют черную рамку, автоматический прозрачный цвет (первый пиксель данных изображения) не будет работать, и вам необходимо также установить свойство TransparentColor
в clWhite.
var
bmp1, bmp2: TBitmap;
begin
bmp1 := TBitmap.Create;
bmp1.LoadFromFile('...\test1.bmp');
bmp2 := TBitmap.Create;
bmp2.LoadFromFile('...\test2.bmp');
// bmp2.PixelFormat := pf24bit; // with 32 bit images I need this, don't know why
bmp2.Transparent := True;
bmp2.TransparentColor := clWhite;
bmp1.Canvas.Draw(0, 0, bmp2); // draw bmp2 over bmp1
// this is how the merged image looks like
Canvas.Draw(0, 0, bmp1);
..
Работает отлично! Просто обратите внимание на кого-то, использующего этот код, убедитесь, что bmp1 и bmp2 будут иметь одинаковый размер. Если bmp2 меньше, чем bmp1, bmp2 будет помещен в верхний левый угол изображения. –
В случае второго растрового изображения является черно-белый, вы можете использовать его в качестве маски в операции растра с BitBlt (передачи битового блока), следующим образом:
Windows.BitBlt(Bmp3.Canvas.Handle, 0, 0, Bmp3.Width, Bmp3.Height,
Bmp1.Canvas.Handle, 0, 0, SRCCOPY);
Windows.BitBlt(Bmp3.Canvas.Handle, 0, 0, Bmp3.Width, Bmp3.Height,
Bmp2.Canvas.Handle, 0, 0, SRCAND);
- 1. Группировка изображений с одним изображением
- 2. Наложение изображений в галерее с изображением, которое завис над
- 3. Наложение изображений JQuery?
- 4. Slimbox - Наложение перед изображением
- 5. Наложение div над изображением
- 6. Наложение изображений наложения
- 7. Наложение двух изображений/ссылок (html)
- 8. Наложение на проблему с изображением
- 9. Наложение изображений CSS для гиперссылок изображений
- 10. Наложение изображений с помощью CImg
- 11. Наложение фоновых изображений не отображается
- 12. Наложение изображений на PHP
- 13. Наложение изображений в FlipView
- 14. Наложение изображений в Java
- 15. андроид: наложение изображений?
- 16. Наложение изображений на Android
- 17. C# Наложение прозрачных изображений
- 18. Масонство + LazyLoad - Наложение изображений
- 19. Наложение изображений в SharePoint
- 20. Наложение изображений и текста
- 21. Наложение изображений в tkinter
- 22. Наложение двух наборов изображений
- 23. Наложение изображений по клику
- 24. Наложение изображений Java
- 25. Перевести анимацию одним изображением
- 26. Как обмениваться одним изображением с другим изображением
- 27. наложение холста изображение с другим изображением android
- 28. Наложение изображения с другим прозрачным изображением
- 29. Нажмите, чтобы вызвать наложение над изображением
- 30. Наложение карты CSS с изображением и текстом
Конечно возможное. Совершено [много этого] (http://english.rejbrand.se/algosim/manual/pmproc/pmproc.html). –
@AndreasRejbrand: спасибо за эту ссылку и, более конкретно, за контент. Отличная ссылка. –