EncodeImage()
Синтаксис
*Buffer = EncodeImage(#Image [, ImagePlugin [, Flags [, Depth]]])
Описание
Кодирует указанное изображение и помещает его в созданный буфер памяти.
Параметры
#Image Номер, идентифицирующий изображение, которое требуется закодировать. ImagePlugin (дополн.) Формат для кодирования изображения. Этот параметр может быть одним из следующих значений: #PB_ImagePlugin_BMP : кодирует в формат BMP (по умолчанию) #PB_ImagePlugin_JPEG : кодирует в формат JPEG, (требуется UseJPEGImageEncoder()) #PB_ImagePlugin_JPEG2000 : кодирует в формат JPEG2000 (требуется UseJPEG2000ImageEncoder()) #PB_ImagePlugin_PNG : кодирует в формат PNG (требуется UsePNGImageEncoder())Flags (дополн.) Параметры для подключаемого плагина изображений. На данный момент поддерживается только настройка качества: число от 0 (минимальное качество) до 10 (максимальное качество). В настоящее время поддерживаются только плагины JPEG и JPEG 2000 (по умолчанию для качества установлено значение "7", если флаги не указаны).
Когда изображение кодируется с использованием глубины палитры (1, 4 или 8), для комбинации доступен следующий флаг:#PB_Image_FloydSteinberg: Применение сглаживание Флойда-Штайнберга.Depth (дополн.) Глубина цвета для сохранённого изображения. Допустимые значения: 1, 4, 8, 24 и 32. Значение по умолчанию - это исходная глубина цвета изображения. Пока только кодер PNG поддерживает формат палитры (1, 4 или 8 бит).
Возвращаемое значение
Возвращает указатель на автоматически выделенный буфер памяти, содержащий кодированное изображение, или ноль, если операция не удалась. Для получения размера кодированного изображения, можно использовать функцию MemorySize(). Чтобы удалить буфер после использования, воспользуйтесь функцией FreeMemory().
Пример (Фран)
UsePNGImageEncoder() UsePNGImageDecoder() If OpenWindow(0, 0, 0, 426, 128, "EncodeImage", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) ImageGadget(0, 0, 0, 128, 128, LoadImage(0, #PB_Compiler_Home+"Examples\Sources\Data\GeeBee2.bmp")) ButtonGadget(1, 138, 50, 150, 30, "Кодирование PNG 2 бита ->") ImageGadget(2, 298, 0, 128, 128, 0) *ptr=EncodeImage(0 , #PB_ImagePlugin_PNG, #PB_Image_FloydSteinberg, 2) ; Кодирование два бита Repeat Event = WaitWindowEvent() If Event = #PB_Event_Gadget Select EventGadget() Case 1 CatchImage(2, *ptr) ; Изображение в памяти SetGadgetState(2, ImageID(2)) ; Просмотр EndSelect EndIf Until Event = #PB_Event_CloseWindow EndIf
См. также
LoadImage(), библиотека ImagePlugin
Поддерживаемые OS
Все