Страница 2 из 3
Создание "иконок" для отображения графических файлов
Добавлено: 16 Ноябрь 2015, 15:37
gopstop2007
Надо вывести blob(TPS) без создания файла, нашел заметку
http://computer-programming-forum.com/1 ... be07b0.htm от Jim Kan
if you using my class you can read the image into memory.
Unless there is some fancy t-sql way to determine the size of the blob,
store the size of the blob in a long field.
retrieve the size.
call :
hglobal=globalalloc(42H,sizeofblob)
lpglobal=globallock(hglobal)
now use the address and size of the allocated memory to call by blobtomem()
method instead of blobtofile() to retrieve the image into memory.
now do:
?image{prop:imageblob}=hglobal
then
globalfree(hglobal)
if the image is a bitmap and in a format such that when written to disk from
disk it can be displayed in a cw image control then this should work too.
you'll have to prototype the global api functions but they are not very
hard. Add error checking. if hglobal or lpglobal are zero, abort.
jim kane
Вопрос, что за его класс на который он ссылается и может уже кто-то пробовал таким способом реализовать?
Создание "иконок" для отображения графических файлов
Добавлено: 16 Ноябрь 2015, 16:38
kreator
Чтобы вывести BLOB в Image никакого класса не нужно. Просто:
Код: Выделить всё
?Image2{PROP:ImageBlob} = CON:TheBlob{PROP:Handle}
А вот закатать картинку в List из памяти - только при помощи высших сил. Много уже обсуждали здесь это, варианта не нашли. Нужно как-то сохранять на диск.
Создание "иконок" для отображения графических файлов
Добавлено: 16 Ноябрь 2015, 17:37
Игорь Столяров
Как вариант есть еще манипуляции Image & Blob TPS в библиотеке FreeImage ...
• Load and save images to BLOBs in TopSpeed files.
Не могу сказать решит ли это вопрос привязки изображений к ListBox - но можно посмотреть в эту сторону.
Создание "иконок" для отображения графических файлов
Добавлено: 16 Ноябрь 2015, 17:46
kreator
Игорь Столяров писал(а):Как вариант есть еще манипуляции Image & Blob TPS в библиотеке FreeImage ...
• Load and save images to BLOBs in TopSpeed files.
Видимо, сейчас это стандарт. FreeImage для этого не нужен:
Код: Выделить всё
CON:TheBlob{PROP:Handle} = ?Image1{PROP:ImageBlob}
Создание "иконок" для отображения графических файлов
Добавлено: 16 Ноябрь 2015, 17:55
Игорь Столяров
kreator писал(а): Видимо, сейчас это стандарт.
С обменом между ?Image и Blob проблем нет, это понятно. Но в FreeImage есть работа с Blob для областей памяти.
Создание "иконок" для отображения графических файлов
Добавлено: 21 Ноябрь 2015, 14:50
gopstop2007
Выше c8 появилось в Image, что-то для изменения размера - Rescale? Может чего-то упустил. Сам использую FreeImage
А вдруг...

Создание "иконок" для отображения графических файлов
Добавлено: 21 Ноябрь 2015, 16:55
kreator
А что понимается под Rescale? Я не в курсе, FreeImage не пользую.
Создание "иконок" для отображения графических файлов
Добавлено: 21 Ноябрь 2015, 18:33
gopstop2007
kreator писал(а):А что понимается под Rescale?
Изменение размера картинки, например с 800х600 на 640х480
Создание "иконок" для отображения графических файлов
Добавлено: 21 Ноябрь 2015, 18:51
kreator
В библиотеке ClaRunExt есть функция ImageSaveThumbnail, которая (по описанию) уменьшает графический файл, в параметрах - процент уменьшения. Работает с файлом. Сам не использовал, поэтому может быть на выходе файл в формате PNG. Пользую функцию ImageRotateFlip из этого пакета, на выходе файл PNG несмотря на то, что на входе JPG, допустим. Вот так.
Создание "иконок" для отображения графических файлов
Добавлено: 21 Ноябрь 2015, 19:00
gopstop2007
хоть что-то, жаль что только в %
Создание "иконок" для отображения графических файлов
Добавлено: 21 Ноябрь 2015, 19:19
Ал
gopstop2007 писал(а):хоть что-то, жаль что только в %
ImageEx... позвоялет размер указать не в %
http://forum.clarionlife.net/phpbb/viewtopic.php?t=2293
Создание "иконок" для отображения графических файлов
Добавлено: 21 Ноябрь 2015, 21:34
gopstop2007
Ал писал(а):ImageEx... позвоялет размер указать не в %
я знаю, выше написал, меня интересовало на самом кларионе, без внешних библиотек

Создание "иконок" для отображения графических файлов
Добавлено: 21 Ноябрь 2015, 22:16
kreator
А в чём проблема? Нужно чтобы все картинки преобразовывались в 640х480? Или с изменением отношения сторон?
Создание "иконок" для отображения графических файлов
Добавлено: 22 Ноябрь 2015, 1:16
gopstop2007
Создание "иконок" для отображения графических файлов
Добавлено: 22 Ноябрь 2015, 9:46
Ал
Что-то я нить потерял...
Что требуется-то сделать чиcтыми средствами клариона с картинкой?
1. при отображении из blob размер менять на окне? судя по хелпу с10 "How to Store and Display a Graphic Image with a Memo or Blob Data Type
":
Код: Выделить всё
?Image2{PROP:Width} = 92
?Image2{PROP:Height} = 88
2. Отображать, преобразовывать и сохранить в другой размер/тип?