Картинки
Мне надо его сохранить в файл BMP, JPEG... ну чем больше графических форматов - тем мне лучше. Кто знает, скажите как сделать.
у меня есть список координат точек
Мне надо его сохранить в файл BMP, JPEG... ну чем больше графических форматов - тем мне лучше. Кто знает, скажите как сделать.
Что ты понимаешь под "списком координат" этих самых точек?
А насчёт кодеков - так интерфейсы с ними неплохо в GDI+ реализованы. Хедеры и справочник могу подкинуть.
Что ты понимаешь под "списком координат" этих самых точек?
А насчёт кодеков - так интерфейсы с ними неплохо в GDI+ реализованы. Хедеры и справочник могу подкинуть.
Список координат TList
запись
TXYRec=record
XY:TPoint;
paint:byte;
end;
paint отвечает за то надо ли рисовать к этой точке(LineTo) или использовать MoveTo
Вот так
Список координат TList
запись
TXYRec=record
XY:TPoint;
paint:byte;
end;
paint отвечает за то надо ли рисовать к этой точке(LineTo) или использовать MoveTo
Вот так
Если юзаешь VCL то у TImage есть метод TImage.Picture.BitMap.ScanLine[X]
Он возвращает указатель на эту линию
Туда подставляешь координаты и переводишь рисунок в нужный формат
З.Ы: смотри хелп
Список координат TList
запись
TXYRec=record
XY:TPoint;
paint:byte;
end;
paint отвечает за то надо ли рисовать к этой точке(LineTo) или использовать MoveTo
Вот так
Я так понял нужен формат который поддерживает не растры, а векторы... Поправь если не прав.
Есть два таких формата EMF (Enhanced Metafiles) и WMF (Windows Metafile). Они чем-то похожи (различий не знаю), оба используют функции GDI для отрисовки изображения, в том числе LineTo, MoveTo. TImage тоже с ними обращаться умеет.
Я так понял нужен формат который поддерживает не растры, а векторы... Поправь если не прав.
Есть два таких формата EMF (Enhanced Metafiles) и WMF (Windows Metafile). Они чем-то похожи (различий не знаю), оба используют функции GDI для отрисовки изображения, в том числе LineTo, MoveTo. TImage тоже с ними обращаться умеет.
Нет мне надо обыкновенный растровый формат, а а мой формат - это из-за специфики построения. Я уже отрисовал эти линии на HBITMAP (спасибо vitaly2003s).
Теперь у меня есть HBITMAP с рисунком и её надо сохранить в файл(расширения уже упоминал).
Теперь у меня есть HBITMAP с рисунком и её надо сохранить в файл(расширения уже упоминал)
Поле TImage.Picture.BitMap.Handle
Поле TImage.Picture.BitMap.Handle
а при разрушении BitMap HBITMAP разрушается?
а при разрушении BitMap HBITMAP разрушается?
Естественно.
Кстати, если ты программиш в VCL, то предпочтительнее пользоваться обычным TBitmap - он умеет сохранять свой контент в BMP, а если кое-что в его кишках дописать, то и в JPEG. И открывать оба этих формата.
Кроме того в нём достаточно просто преобразовывать глубину цвета.
а при разрушении BitMap HBITMAP разрушается?
про сохранение. В делфийском модуле Graphics, чтобы добавить подержку жепегоффф надо добавить в uses JPEG это раз,
далее найти класс TFileFormatsList и изменить его конструктор вот так:
begin
inherited Create;
Add('wmf', SVMetafiles, 0, TMetafile);
Add('emf', SVEnhMetafiles, 0, TMetafile);
Add('ico', SVIcons, 0, TIcon);
Add('bmp', SVBitmaps, 0, TBitmap);
//добавляем поддержку формата JPEG
Add('jpg', SVjpegs, 0, TJPEGImage);
Add('jpeg', SVjpegs, 0, TJPEGImage);
end;
сонстанта SVjpegs у меня добавлена в модуль Consts
Если ты хочешь сохранять и в другие форматы, то в этом случае следует работать, как я уже упоминал выше, с кодеками.
Очень удобно реализована работа с ними в библиотеке GDI+ Я уже где-то выкладывал на форуме хедеры и сэмплы.
Если юзать VCL, то можно даже ничего не дописывать ;)
Можно просто юзать TImage в котором уже есть TBitMap, TJPEGImage, TMetaFile и TIcon
Очень удобно реализована работа с ними в библиотеке GDI+ Я уже где-то выкладывал на форуме хедеры и сэмплы
Это расшщирение есть только в WinXP
Тогда надо будет еще и GDIPlus.dll с приложением носить
З.Ы: изменять модули не советую, т.к у меня в Delphi 2005 стандартные модули не меняются(может я ошибся)
Это расшщирение есть только в WinXP
Тогда надо будет еще и GDIPlus.dll с приложением носить
З.Ы: изменять модули не советую, т.к у меня в Delphi 2005 стандартные модули не меняются(может я ошибся)
Какраз ЭТО изменение нужно для того, чтобы программа могла читать и записывать в JPEG в рантайме! Я проверял. TImage без него не будет способен читать JPEG при работе приложения.
А GDIPlus.dll есть не тлько в XP но и в вынь2000, с каким-то там SP.
А GDIPlus.dll есть не тлько в XP но и в вынь2000, с каким-то там SP.
А где можно достать список экспортируемых функций и их описание?
А где можно достать список экспортируемых функций и их описание?
Вот хедеры и сэмплы.
Там есть сэмплы для работы с различными кодеками, установленными в системе. 8)