![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
сжатие отсканированной фотки
gentos © (2007-08-13 14:40:00)Уважаемые мастера, я со сканера получаю в битмэп документ 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;
но, к сожалению, не прошло, что делать ? :)...
gentos (2007-08-13 14:51:00) [1]
> DVM © (13.08.07 14:49) [3]
сенкс
gentos (2007-08-13 14:50:00) [2]:) тока сам написал такое же :)
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);
DVM (2007-08-13 14:49:00) [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:47:00) [4]согласен, глупо , но это проблемы не решает :)
DVM (2007-08-13 14:44:00) [5]
> но, к сожалению, не прошло, что делать ? :)...
Странный у тебя подход - сохраняешь в поток битмап, а читаешь из потока в жпег. Это то же самое что битмап сохранить в файл, а потом пытаться прочитать из этого же файла но уже жпег.