求助,关于图片压缩问题!(100分)

  • 主题发起人 主题发起人 li99106
  • 开始时间 开始时间
L

li99106

Unregistered / Unconfirmed
GUEST, unregistred user!
我想将一张2--3M大小的jpg图片压缩成100k多的jpg图片,请问怎样来实现!能否给出具体实例!谢谢
 
改变图片的质量因子,图像质量会下降。
 
现在最重要的是要把图片进行压缩,大量大图片存在数据库里,会增加数据库的空间,查询反映慢!能不能帮忙解决以下
 
建议图片不要放在数据库里
数据库里放图片的路径
JPG图片已经是压缩过的格式了。如果想再无损压缩基本上也压不了多少
你用WinRAR试一下就知道了
这么著名的压缩工具对图片压缩都没什么好办法。
 
把图像宽高变小点三,一般800×600就可以了
 
procedure Jpg2Jpg(const Source,dest:string; Scale: TJPEGScale);
var
MyJpeg: TJpegImage;
Image1:TImage;
begin
Image1:= TImage.Create(application);
MyJpeg:= TJpegImage.Create;
MyJpeg.LoadFromFile(source);
MyJpeg.CompressionQuality:= scale;//缩小为原来的八分之一
MyJpeg.Compress;
MyJpeg.SaveToFile(dest);
end;
我用以上命令后,生成的图片大小为0 k,请问这是怎么回事!
 
上面是BMP 2 JPG 的压缩
 
我可是花了100分十个Q币的哦
 
>>来自:龙之吻, 时间:2006-6-21 10:12:38, ID:3476971
>>建议图片不要放在数据库里
>>数据库里放图片的路径
>>JPG图片已经是压缩过的格式了。如果想再无损压缩基本上也压不了多少
>>你用WinRAR试一下就知道了
>>这么著名的压缩工具对图片压缩都没什么好办法。

说得很对,不要把时间花在压缩上面了, 除非你可以改变图片的质量和分辨率。不过我有点好奇,JPG压缩后都2-3M的是什么图片,分辨率超高??
 
图片尺寸改为800*600
jpg 压缩率设为65%,
可以保证在100k 以内
图片精度也不会损失太大
 
要是1024*768的图象,怎么给它变成800*600的
 
话题2429198的标题是: 怎样压缩图片? (200分)
分类:图形图象 细文 (2004-02-01 0:14:00)
一张JPF图片经过SaveToFile保存另一张JPG图片,容量变大几倍。怎样压缩图片?[:(]

zhoufujin (2004-02-02 19:37:00)
一张JPF图片经过SaveToFile保存另一张JPG图片,容量变大几倍
//???? No

app2001 (2004-02-02 19:43:00)
procedure TForm1.Button1Click(Sender: TObject);
var
b: TBitmap;//原图片
nb: TBitmap;//Resize以后的图片
r: TRect;
begin
b := TBitmap.Create;

if OpenDialog1.Execute then
begin
b.LoadFromFile(OpenDialog1.FileName);
nb := TBitmap.Create;

//你可以自己定义高度和宽度,这里是都变成一半
nb.Height := b.Height div 2; //高度变为原来的一半
nb.Width := b.Width div 2; //宽度变为原来的一半
r.TopLeft := Point(0, 0);
r.BottomRight := Point(nb.Width, nb.Height);

with nb.Canvas do
begin
Pen.Style := psDash;
Brush.Style := bsClear;
Rectangle(0, 0, nb.Width, nb.Height);
StretchDraw(r, TGraphic(b));
end;
if SaveDialog1.Execute then nb.SaveToFile(SaveDialog1.FileName);
nb.Free;
end;
这样算不算压缩????

andy263 (2004-02-02 19:48:00)
不用savetofile 用copyfile

细文 (2004-02-02 20:12:00)
接受答案了.


app2001的回答最终被接受。
 
看来你自己是不常关注自己问题的[:D]
要程序和代码QQ: 252901077,不过这100分可得给我[8D]
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部