Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определить размер переменной типа GpImage, GDI 
:(
    Опции темы
Nоbodyx
Дата 26.6.2005, 17:07 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Нужно определить размер переменной типа GpImage (GpImage = Pointer)
Искал среди функций GDI, найти не удалось.

На всякий случай, исходный код:
Код

uses ..., GDIPAPI, GDIPOBJ, GDIPUTIL;

procedure TForm1.Button2Click(Sender: TObject);
var
  encoderClsid: TGUID;
  stat: TStatus;
  Image: TGPBitmap;
  Bitmap: HBITMAP;
  Pallete: HPALETTE;
begin
  Bitmap := LoadBitmap(HInstance, PChar('BBABORT'));
  if Bitmap = 0 then RaiseLastOSError;
  Image := TGPBitmap.Create(Bitmap, Pallete);
  try
    GetEncoderClsid('image/jpeg', encoderClsid);
    stat := image.Save('c:\1.jpg', encoderClsid, nil);
    if(stat = Ok) then
      ShowMessage('Все ОК')
    else
      ShowMessage('Неполучилось');
  finally
    Image.Free;
  end;
end;


Это сообщение отредактировал(а) s-mike - 26.6.2005, 18:38
  Вверх
s-mike
Дата 26.6.2005, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 16.1.2005
Где: Киев

Репутация: 5
Всего: 16



А для чего тебе размер? Чтобы сохранить в дельфийский поток - отрисуй на TBitmap и сохраняй, получить размеры изображения - GpImage.GetWidth x GpImage.GetHeight.
PM MAIL WWW   Вверх
Nоbodyx
Дата 27.6.2005, 13:40 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Размер нужен, чтоб отослать по сети. Можно конечно сначала в файл, а потом отсылать, но зачем лишняя работа?
  Вверх
s-mike
Дата 27.6.2005, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 16.1.2005
Где: Киев

Репутация: 5
Всего: 16



Цитата(N @ 27.6.2005, 13:40)
Можно конечно сначала в файл, а потом отсылать, но зачем лишняя работа?

Зачем в файл? Я же говорил - в поток.
PM MAIL WWW   Вверх
Nоbodyx
Дата 27.6.2005, 23:51 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Сохранение в поток - лишнее время, к тому же я использую АПИ функции только для того, чтоб уменьшить размер проги за счет того, что не подключаю модули Classes, Graphics, Jpeg. Потому не могу сохранить в делфийский поток.

Неужели не существует функции или способа, чтобы узнать размер переменной типа GpImage ?
  Вверх
s-mike
Дата 28.6.2005, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 16.1.2005
Где: Киев

Репутация: 5
Всего: 16



Nоbodyx, у TGPImage есть еще метод
Код

    function Save(stream: IStream; const clsidEncoder: TGUID;
      encoderParams: PEncoderParameters  = nil): TStatus; overload;

Если тебе не нравится дельфийский поток, можешь использовать IStream.
PM MAIL WWW   Вверх
Yanis
Дата 28.6.2005, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 2
Всего: 111



Цитата(N @ 26.6.2005, 17:07)
Нужно определить размер переменной типа GpImage (GpImage = Pointer)

4 байта


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
s-mike
Дата 28.6.2005, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 16.1.2005
Где: Киев

Репутация: 5
Всего: 16



Цитата(Yanis @ 28.6.2005, 18:17)
4 байта

Имеется ввиду размер данных. Хоть вопрос поставлен некорректно, в дальнейшем все разъясняется.
PM MAIL WWW   Вверх
Nоbodyx
Дата 3.7.2005, 12:44 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











s-mike

Спасибо, так и сделаю.
Но размер данных в потоке тоже было б желательно знать (для Progress Bar)
  Вверх
s-mike
Дата 3.7.2005, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 16.1.2005
Где: Киев

Репутация: 5
Всего: 16



У IStream есть метод
Код

    function Stat(out statstg: TStatStg; grfStatFlag: Longint): HResult;
      stdcall;


PM MAIL WWW   Вверх
Nоbodyx
Дата 6.7.2005, 19:20 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











s-mike

Благодарю!
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.1460 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.