Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Картинки

268
04 января 2006 года
Михаил
587 / / 25.06.2005
у меня есть список координат точек
Мне надо его сохранить в файл BMP, JPEG... ну чем больше графических форматов - тем мне лучше. Кто знает, скажите как сделать.
5
04 января 2006 года
hardcase
4.5K / / 09.08.2005
Цитата:
Originally posted by Михаил
у меня есть список координат точек
Мне надо его сохранить в файл BMP, JPEG... ну чем больше графических форматов - тем мне лучше. Кто знает, скажите как сделать.


Что ты понимаешь под "списком координат" этих самых точек?
А насчёт кодеков - так интерфейсы с ними неплохо в GDI+ реализованы. Хедеры и справочник могу подкинуть.

268
04 января 2006 года
Михаил
587 / / 25.06.2005
Цитата:
Originally posted by hardcase
Что ты понимаешь под "списком координат" этих самых точек?
А насчёт кодеков - так интерфейсы с ними неплохо в GDI+ реализованы. Хедеры и справочник могу подкинуть.


Список координат TList
запись
TXYRec=record
XY:TPoint;
paint:byte;
end;
paint отвечает за то надо ли рисовать к этой точке(LineTo) или использовать MoveTo
Вот так

253
05 января 2006 года
Proger_XP
1.5K / / 07.08.2004
Цитата:
Originally posted by Михаил
Список координат TList
запись
TXYRec=record
XY:TPoint;
paint:byte;
end;
paint отвечает за то надо ли рисовать к этой точке(LineTo) или использовать MoveTo
Вот так


Если юзаешь VCL то у TImage есть метод TImage.Picture.BitMap.ScanLine[X]
Он возвращает указатель на эту линию
Туда подставляешь координаты и переводишь рисунок в нужный формат
З.Ы: смотри хелп

9.8K
05 января 2006 года
bqserg
56 / / 27.09.2005
Цитата:
Originally posted by Михаил
Список координат TList
запись
TXYRec=record
XY:TPoint;
paint:byte;
end;
paint отвечает за то надо ли рисовать к этой точке(LineTo) или использовать MoveTo
Вот так



Я так понял нужен формат который поддерживает не растры, а векторы... Поправь если не прав.

Есть два таких формата EMF (Enhanced Metafiles) и WMF (Windows Metafile). Они чем-то похожи (различий не знаю), оба используют функции GDI для отрисовки изображения, в том числе LineTo, MoveTo. TImage тоже с ними обращаться умеет.

268
06 января 2006 года
Михаил
587 / / 25.06.2005
Цитата:
Originally posted by bqserg
Я так понял нужен формат который поддерживает не растры, а векторы... Поправь если не прав.

Есть два таких формата EMF (Enhanced Metafiles) и WMF (Windows Metafile). Они чем-то похожи (различий не знаю), оба используют функции GDI для отрисовки изображения, в том числе LineTo, MoveTo. TImage тоже с ними обращаться умеет.


Нет мне надо обыкновенный растровый формат, а а мой формат - это из-за специфики построения. Я уже отрисовал эти линии на HBITMAP (спасибо vitaly2003s).
Теперь у меня есть HBITMAP с рисунком и её надо сохранить в файл(расширения уже упоминал).

253
06 января 2006 года
Proger_XP
1.5K / / 07.08.2004
Цитата:
Originally posted by Михаил
Теперь у меня есть HBITMAP с рисунком и её надо сохранить в файл(расширения уже упоминал)


Поле TImage.Picture.BitMap.Handle

268
06 января 2006 года
Михаил
587 / / 25.06.2005
Цитата:
Originally posted by Proger_XP
Поле TImage.Picture.BitMap.Handle


а при разрушении BitMap HBITMAP разрушается?

5
06 января 2006 года
hardcase
4.5K / / 09.08.2005
Цитата:
Originally posted by Михаил
а при разрушении BitMap HBITMAP разрушается?


Естественно.

Кстати, если ты программиш в VCL, то предпочтительнее пользоваться обычным TBitmap - он умеет сохранять свой контент в BMP, а если кое-что в его кишках дописать, то и в JPEG. И открывать оба этих формата.
Кроме того в нём достаточно просто преобразовывать глубину цвета.

5
06 января 2006 года
hardcase
4.5K / / 09.08.2005
Цитата:
Originally posted by Михаил
а при разрушении BitMap HBITMAP разрушается?


про сохранение. В делфийском модуле Graphics, чтобы добавить подержку жепегоффф надо добавить в uses JPEG это раз,
далее найти класс TFileFormatsList и изменить его конструктор вот так:

Код:
constructor TFileFormatsList.Create;
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
 
Код:
SVjpegs = 'Jpegs';


Если ты хочешь сохранять и в другие форматы, то в этом случае следует работать, как я уже упоминал выше, с кодеками.
Очень удобно реализована работа с ними в библиотеке GDI+ Я уже где-то выкладывал на форуме хедеры и сэмплы.
253
06 января 2006 года
Proger_XP
1.5K / / 07.08.2004
2HardCase
Если юзать VCL, то можно даже ничего не дописывать ;)
Можно просто юзать TImage в котором уже есть TBitMap, TJPEGImage, TMetaFile и TIcon
253
06 января 2006 года
Proger_XP
1.5K / / 07.08.2004
Цитата:
Originally posted by hardcase
Очень удобно реализована работа с ними в библиотеке GDI+ Я уже где-то выкладывал на форуме хедеры и сэмплы


Это расшщирение есть только в WinXP
Тогда надо будет еще и GDIPlus.dll с приложением носить
З.Ы: изменять модули не советую, т.к у меня в Delphi 2005 стандартные модули не меняются(может я ошибся)

5
06 января 2006 года
hardcase
4.5K / / 09.08.2005
Цитата:
Originally posted by Proger_XP
Это расшщирение есть только в WinXP
Тогда надо будет еще и GDIPlus.dll с приложением носить
З.Ы: изменять модули не советую, т.к у меня в Delphi 2005 стандартные модули не меняются(может я ошибся)


Какраз ЭТО изменение нужно для того, чтобы программа могла читать и записывать в JPEG в рантайме! Я проверял. TImage без него не будет способен читать JPEG при работе приложения.
А GDIPlus.dll есть не тлько в XP но и в вынь2000, с каким-то там SP.

268
06 января 2006 года
Михаил
587 / / 25.06.2005
Цитата:
Originally posted by hardcase
А GDIPlus.dll есть не тлько в XP но и в вынь2000, с каким-то там SP.


А где можно достать список экспортируемых функций и их описание?

5
06 января 2006 года
hardcase
4.5K / / 09.08.2005
Цитата:
Originally posted by Михаил
А где можно достать список экспортируемых функций и их описание?


Вот хедеры и сэмплы.
Там есть сэмплы для работы с различными кодеками, установленными в системе. 8)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог