当前位置: 代码迷 >> Delphi >> 怎么将图片的尺寸缩小上传到数据库
  详细解决方案

怎么将图片的尺寸缩小上传到数据库

热度:209   发布时间:2016-05-10 04:44:53.0
如何将图片的尺寸缩小上传到数据库?
我做了个程序是将图片上传到数据库里存放的,现在已经实现了这个功能!但由于有些图片太大,我想将图片缩小后再上传到数据库!(例如将图片缩小到原图的1/8)但我不知道如何将图片缩小!以下是上传图片的代码

var
F:TFileStream
begin

F:=TFileStream.Create('C:\1.jpg',fmOpenRead);
query.Insert;
TBlobField(queryt1).loadfromstream(F);
query.Post;

end;

如何将图片缩小到原图的1/8后再上传呢?麻烦各位帮忙看看,小弟万分感谢

------解决方案--------------------
先用Tjpegimage将原有图片缩小之后再保存
------解决方案--------------------
var
bmp,backbmp:TBitmap;
begin
backbmp:=TBitmap.Create;
backbmp.Assign(Image1.Picture.Bitmap);
try
bmp:=TBitmap.Create;
bmp.PixelFormat:=pf24bit;
Image1.AutoSize:=True;
bmp.Width:=trunc(0.9*Image1.Width);
bmp.Height:=trunc(0.9*Image1.Height);
//保持最大限度不失真
SetStretchBltMode(bmp.Canvas.Handle,HALFTONE);
StretchBlt(bmp.Canvas.Handle,0,0,bmp.Width,bmp.Height,
backbmp.Canvas.Handle,0,0,backbmp.Width,backbmp.Height,SRCCOPY);
Image1.Picture.Bitmap.Assign(bmp);
Image1.Top:=Self.Height div 2-Image1.Height div 2;
Image1.Left:=Self.Width div 2-Image1.Width div 2;
bmp.PixelFormat:=pf24bit;
Self.Caption:='图象尺寸为:'+IntToStr(Image1.Width)+'*'+IntToStr(Image1.Height);
bmp.Free;
except
end;
backbmp.Free;
backbmp:=nil;
------解决方案--------------------
也可以用gdi+
http://www.cnblogs.com/del/archive/2008/07/02/1234229.html
------解决方案--------------------
直接去百度一下,选择合适大小的图片就可以了。
------解决方案--------------------
最简单的缩小图片的方法就是使用API函数StretchBlt,缩小后再使用ADO.Stream对象存入数据库。
------解决方案--------------------
把几个点的数据取平均值保存成一个点就可以缩小了。
------解决方案--------------------
体积缩小 用 StretchBlt

质量变差 (JPG格式) 可以用 GDI+的保存
  相关解决方案
本站暂不开放注册!
内测阶段只得通过邀请码进行注册!
 
  • 最近登录:Sun Aug 20 06:32:48 CST 2017
  • 最近登录:Sun Aug 20 06:32:48 CST 2017
  • 最近登录:Sun Aug 20 06:32:48 CST 2017
  • 最近登录:Sun Aug 20 06:32:48 CST 2017
  • 最近登录:Sun Aug 20 06:32:48 CST 2017