FPImage и визуальная конва LCL

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

FPImage и визуальная конва LCL

Сообщение qivi » 15.04.2014 16:23:57

Уже нечто подобное спрашивал, но остался без ответа. Немного в другом ключе спрошу. Есть штатные методы перенести изображение из FCL'ного FPImage на LCL'ную визуальную канву?
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: FPImage и визуальная конва LCL

Сообщение wavebvg » 15.04.2014 16:50:36

FPImage => Bitmap => Canvas

Преобразование в Bitmap
http://wiki.freepascal.org/fcl-image#Image_formats

Есть статья из которой можно почерпать интересные вещи
http://wiki.freepascal.org/Developing_with_Graphics
wavebvg
постоялец
 
Сообщения: 355
Зарегистрирован: 28.02.2008 04:57:35

Re: FPImage и визуальная конва LCL

Сообщение qivi » 15.04.2014 18:09:27

wavebvg писал(а):FPImage => Bitmap => Canvas

Преобразование в Bitmap
http://wiki.freepascal.org/fcl-image#Image_formats


Да я то же нащупал этот несколько сомнительный способ, пожалуй это было бы приемлемо, но в итоге я получаю какие то погрешности и артифакты в виде хаотических чёрточек или затенения отдельных областей изображения.
Последний раз редактировалось qivi 15.04.2014 22:37:38, всего редактировалось 1 раз.
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: FPImage и визуальная конва LCL

Сообщение Padre_Mortius » 15.04.2014 21:26:09

qivi, а чем не устраивают LCL-ные обертки над FPImage?
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: FPImage и визуальная конва LCL

Сообщение qivi » 15.04.2014 22:27:13

То биш сторонние библиотеки? Нет, это не то что мне нужно.
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: FPImage и визуальная конва LCL

Сообщение hinst » 15.04.2014 22:34:14

Можно просто сохранить TFPImage в TMemoryStream, затем загрузить TBitmap из TStream.
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Re: FPImage и визуальная конва LCL

Сообщение Padre_Mortius » 15.04.2014 23:06:36

qivi, какая стоит задача?
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: FPImage и визуальная конва LCL

Сообщение qivi » 16.04.2014 11:26:08

hinst писал(а):Можно просто сохранить TFPImage в TMemoryStream, затем загрузить TBitmap из TStream.

Интересная мысль, нужно попробовать.

Padre_Mortius писал(а):qivi, какая стоит задача?

Загружать, обрабатывать, или изначально отрисовывать изображение в FPImage, но при этом отображать его на обычной LCL канве без использования сторонних библиотек.

У меня есть ещё идея написать нехитрый метод попиксельной перерисовки FPImage на канву. Это наверно крайне медленный костыль?
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: FPImage и визуальная конва LCL

Сообщение wavebvg » 16.04.2014 13:18:37

Мне так кажется, что проблема зарылась где-то в коде...
Можете показать пример кода, который не работает корректно?
wavebvg
постоялец
 
Сообщения: 355
Зарегистрирован: 28.02.2008 04:57:35

Re: FPImage и визуальная конва LCL

Сообщение qivi » 17.04.2014 11:53:56

wavebvg писал(а):Мне так кажется, что проблема зарылась где-то в коде...
Можете показать пример кода, который не работает корректно?


Пилить пример сейчас не хочется, а старое не сохранилось. Но суть была в следующем, я рисовал градиент в TFPMemoryImage а потом его нужно было перенести на канву, и он переносился но местами возникали всякие шумы чёрточки и пр. цифровой мусор. Делал примерно следуще, сперва рисовал в TFPMemoryImage, потом его переносил методом Assign(); в TBitMap, после чего его отрисовывал методом Draw(); на канве.
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: FPImage и визуальная конва LCL

Сообщение wavebvg » 17.04.2014 15:27:02

Да, посмотрел.
Выставьте вот так
Код: Выделить всё
  FBitmap.TransparentMode:= tmFixed;   

и всё будет работать на ура.
Так же, если не лень, подготовьте обновление для TCanvas в лазаре, чтобы он наконец-то же научился работать с прозрачными Bitmap-ами (тут проблема с GTK оберткой, я думаю)
wavebvg
постоялец
 
Сообщения: 355
Зарегистрирован: 28.02.2008 04:57:35

Re: FPImage и визуальная конва LCL

Сообщение qivi » 18.04.2014 11:01:51

wavebvg писал(а):Так же, если не лень, подготовьте обновление для TCanvas в лазаре, чтобы он наконец-то же научился работать с прозрачными Bitmap-ами (тут проблема с GTK оберткой, я думаю)


Если бы я знал как это сделать, давно бы сделал. Если память не изменяет не только под GTK, для теста компилил под Win, вроде то же самое был.
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 235

Рейтинг@Mail.ru