当前位置:编程学习 > Delphi >>

(DELPHI)已经存入SQLSERVER中的图片数据(image字段)太大,怎么直接在数据库中压缩?或怎么用程序实现

存数据的时候没有考虑大小限制,所有图片都是分辨率极高的,现实使用中不需要这么高分辨率的图片,怎么用最简单的方法压缩数据库里的图片信息。
补充:查了一些资料 发现没有什么简单的方法 只能写程序取出来 再压缩像素 再存入数据库。

怎么压缩像素?
答案: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;
其他:没什么好办法,压缩好了再放进去。 DELPHI好像有个zip的第三方控件,你可以考虑把数据读出来,压缩后再存回去,然后,在需要使用的时候再把它解压。 fg

上一个:请问一下这个delphi程序怎么变
下一个:我想用DELPHI做的显示目录下的文件名的程序不知道怎么写

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,