(DELPHI)已经存入SQLSERVER中的图片数据(image字段)太大,怎么直接在数...
发布网友
发布时间:2022-05-05 06:19
我来回答
共5个回答
热心网友
时间:2022-04-14 23:53
delphi 的图像缩放示例代码如下:
//将图片缩放至指定大小
procere SizeBmp(const Source, Dest: string; const x, y: integer);
var
aBmp, bBmp: tbitmap;
scalex, scaley: real;
begin
aBmp := TBitmap.Create;
bBmp := TBitmap.Create;
try
aBmp.LoadFromFile(Source);
scaley := aBmp.Height / y;
scalex := aBmp.Width / x;
bBmp.Width := round(aBmp.Width / scalex);
bBmp.Height := round(aBmp.Height / scaley);
bBmp.PixelFormat := pfDevice;
SetStretchBltMode(bBmp.Canvas.Handle, COLORONCOLOR);
StretchBlt(bBmp.Canvas.Handle, 0, 0, bBmp.Width, bBmp.Height,
aBmp.Canvas.Handle, 0, 0, aBmp.Width, aBmp.Height, srccopy);
bBmp.SaveToFile(Dest);
finally
aBmp.Free;
bBmp.Free;
end;
end;
procere TForm1.btn1Click(Sender: TObject);
begin
SizeBmp('e:\1112.bmp','e:\1112_small.bmp',640,480);
end;
热心网友
时间:2022-04-15 01:11
delphi里面有zlib这个单元,里面有压缩的函数TCompressionStream可以调用!参考下面的代码去处理吧!
var
SourceStream: TCompressionStream;
DestStream: TMemoryStream;
Count: Integer;
Begin
//获得图像流的原始尺寸
Count := CompressedStream.Size;
DestStream := TMemoryStream.Create;
SourceStream:=TCompressionStream.Create(CompressionLevel, DestStream);
Try
CompressedStream.SaveToStream(SourceStream);
//将原始流进行压缩, DestStream中保存着压缩后的流
SourceStream.Free;
CompressedStream.Clear;
//写入原始流的尺寸
CompressedStream.WriteBuffer(Count, SizeOf(Count));
//写入经过压缩的流
CompressedStream.CopyFrom(DestStream, 0);
finally
DestStream.Free;
end;
end;
热心网友
时间:2022-04-15 02:45
DELPHI好像有个zip的第三方控件,你可以考虑把数据读出来,压缩后再存回去,然后,在需要使用的时候再把它解压。
热心网友
时间:2022-04-15 04:37
fg
热心网友
时间:2022-04-15 06:45
没什么好办法,压缩好了再放进去。