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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Увеличивается размер картинки после экспорта, (Image1.Picture.SaveToFile() ) 
V
    Опции темы
Данкинг
Дата 2.8.2009, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: нет
Всего: 130



Есть база на FireBird, в которой в BLOB-поле сохраняется JPG-картинка. В самой базе файл имеет оригинальный размер, т.е. такой, какой был при экспорте. При экспорте картинки на самом серваке (т.е. через IB Expert) она сохраняется с тем же размером, что и был. Но когда я гружу эту картинку в Image и затем сохраняю:
Код

Image1.Picture.SaveToFile('i:\dddd.jpg');

 - то все сохраняемые файлы имеют одинаковый размер: 2 294 647, независимо от исходного размера. Можно ли это как-то исправить?



--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
AntonN
Дата 2.8.2009, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.8.2006

Репутация: 7
Всего: 18



как грузишь?
из блоба сохрани в tstream, у него "нормальный" размер?


--------------------
user posted image
PM MAIL WWW   Вверх
Данкинг
Дата 2.8.2009, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: нет
Всего: 130



Цитата(AntonN @  3.8.2009,  00:03 Найти цитируемый пост)
как грузишь?

Код

procedure tform1.Load_pic;
var S : TStream;
    FileS : TFileStream;
    FileName:string;
begin
  filename:=extractfilepath(application.ExeName)+'\temp.jpg';
  if zapros_ib2.FieldByName('jpg').IsNull then Exit;
  S:=zapros_ib2.FieldByName('jpg').DataSet.CreateBlobStream(zapros_ib2.FieldByName('jpg'), bmRead);
  if FileExists(FileName) then
    FileS:=TFileStream.Create(FileName, fmOpenWrite)
  else
    FileS:=TFileStream.Create(FileName, fmCreate);
  try
    FileS.CopyFrom(S, S.Size);
  finally
    S.Free;
    FileS.Free;
  end;
image1.Picture.LoadFromFile(filename);
end;

Вот у временного файла уже "ненормальный" размер.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Keeper89
Дата 3.8.2009, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 1
Всего: 58



А в СУБД не стоят ограничения на размер данных в поле?

И что если попробовать заменить
Код

S := zapros_ib2.FieldByName('jpg').DataSet.CreateBlobStream(zapros_ib2.FieldByName('jpg'), bmRead);

на
Код

S := zapros_ib2.FieldByName('jpg').DataSet.CreateBlobStream((zapros_ib2.FieldByName('jpg') as TBlobField), bmRead);

?

Это сообщение отредактировал(а) Keeper89 - 3.8.2009, 00:37


--------------------
PM MAIL WWW   Вверх
Данкинг
Дата 3.8.2009, 01:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: нет
Всего: 130



 smile Проблема решилась удалением временного файла перед его созданием, т.е.
Код

 deletefile(filename);

 smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
AntonN
Дата 3.8.2009, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.8.2006

Репутация: 7
Всего: 18



ты прежде чем делать CopyFrom() установи у FileS тот же размер, что и у S, и на всякий сделай
Код

S.position:=0;
FileS.position:=0;


Добавлено через 32 секунды
для таких вещей есть Seek


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

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

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

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

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


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

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


 




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


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

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