Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.09.09;
Скачать: [xml.tar.bz2];

Вниз

сжатие отсканированной фотки   Найти похожие ветки 

 
gentos   (2007-08-13 14:40) [0]

Уважаемые мастера, я со сканера получаю в битмэп документ 10 Мб, мне надо помещать его в базу, я уже это реализовал, но 10 Мб это как-то есть много :), поэтому хотелось бы как-то уменьшить размерчик до 1 Мб, как это можно сделать и если уже кто-то с этим сталкивался можете дать код , вот что я написал ругаеться error 52 bla bla jpeg

function TScanDocForm.BmpToJpg(Mstream: TMemoryStream):TMemoryStream;
var
 Jpg: TJPEGImage;
 Strm: TMemoryStream;
begin
  try
    Jpg:=TJPEGImage.Create;
    Strm:=TMemoryStream.Create;
    Jpg.LoadFromStream(MStream);
    Jpg.SaveToStream(Strm);
    Result := Strm;
  finally;
  Jpg.Free;
  Strm.Free;
  end;
end;

вызываю следующим образом

    ScanImage.Picture.Bitmap.SaveToStream(Mstream);
    Mstream.Position :=0;
    LOB.CopyFrom(BmpToJpg(Mstream),BmpToJpg(Mstream).Size);


писал это учитывая мой предыдущий опыт перевота с

  Bit : TBitmap;
  в
  Jpg: TJPEGImage;

но, к сожалению, не прошло, что делать ? :)...


 
DVM ©   (2007-08-13 14:44) [1]


> но, к сожалению, не прошло, что делать ? :)...

Странный у тебя подход - сохраняешь в поток битмап, а читаешь из потока в жпег. Это то же самое что битмап сохранить в файл, а потом пытаться прочитать из этого же файла но уже жпег.


 
gentos   (2007-08-13 14:47) [2]

согласен, глупо, но это проблемы не решает :)


 
DVM ©   (2007-08-13 14:49) [3]

procedure TForm1.Button1Click(Sender: TObject);
var
 JPEG: TJPEGImage;
 Bitmap: TBitmap;
begin
 JPEG := TJPEGImage.Create;
 Bitmap := TBitmap.Create;
 try
   Bitmap.LoadFromFile("C:\test.bmp");
   JPEG.Assign(Bitmap);
  ///// тут сохраняй жпег куда тебе надобно
 finally
   JPEG.Free;
   Bitmap.Free;
 end;
end;


 
gentos   (2007-08-13 14:50) [4]

:) тока сам написал такое же :)

 LobCreateTemporary(LOB);           // cr temp
    Jpg:=TJPEGImage.Create;
    Mstream:=TMemoryStream.Create;
    //
    Jpg.Assign(ScanImage.Picture.Bitmap);
    jpg.SaveToStream(Mstream);
    //
  //  ScanImage.Picture.Bitmap.SaveToStream(Mstream);
    Mstream.Position :=0;
    LOB.CopyFrom(Mstream,Mstream.Size);


 
gentos   (2007-08-13 14:51) [5]


> DVM ©   (13.08.07 14:49) [3]


сенкс



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.09.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.035 c
15-1186756832
\/iKTOR
2007-08-10 18:40
2007.09.09
Улыбнитесь :)


2-1187259357
DevilDevil
2007-08-16 14:15
2007.09.09
GetFileTime для выполняемого exe


2-1187078452
Merry
2007-08-14 12:00
2007.09.09
Формат даты отличный от системного


2-1187091294
gentos
2007-08-14 15:34
2007.09.09
oraclequery.prior - error какой-то детский


15-1187156432
zdm77
2007-08-15 09:40
2007.09.09
Архивирование





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский