![]() |
|
|
#1
|
|||
|
|||
![]() Доброго времени суток всем!
Никак не могу разобраться. Загружаю изображения из файла в один TBitmap, затем копирую в другой и при этом теряется цветность изображения (когда вывожу на канвас из второго битмапа). Причем если вывожу на канву из первого то всё нормально. Так же если во второй гружу из файла и потом на канву тоже нормально. В чем может быть загвоздка. |
#2
|
||||
|
||||
![]() А как копируешь? Палитру тож копировать надо.
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#3
|
|||
|
|||
![]() Копирую просто заданием области копирования и
BitMap.Canvas.CopyRect(RD,B1.Canvas,RS); либо BitMap.Canvas.Draw(0,0,B1); результат один и тот же. Причем подобный эффект происходит только при задании свойства PixelFormat для обоих битмапов в pf4bit. Если поставить pf16bit и выше то всё нормально. А как правильно скопировать палитру? Я устаноавливаю для второго битмапа BitMap.Canvas.CopyMode:=cmSrcCopy; Это не обеспечивает копирование палитры? |
#4
|
|||
|
|||
![]() Но если установить выше чем pf4bit сильно растет размер
|
#5
|
||||
|
||||
![]() Сделай:
Код:
Bitmap2.Assign(Bitmap1); Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#6
|
|||
|
|||
![]() Да тут не так просто. Дело в том что я копирую из множества битмапов в один. Т.е. из фрагментов карты составляю одну, а потом вывожу её на канву. Поэтому каждму фрагменту соответствуюет свой битмап, которые в свою очередь копируются в один общий большой.
|