像PhotoShop那样保存 JPG 的格式选项如何做?
像PhotoShop那样保存 JPG 的格式选项如何做? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20061019114413224.html
平时没发觉
无意中发现自己的代码保存的JPG质量不如PS的
载入代码如下: [LoadIn 是完整文件名]
LoadInBmp := Tbitmap.Create;
if (LowerCase(extractfileext(LoadIn))= '.jpeg') or (LowerCase(extractfileext(LoadIn))= '.jpg')then
begin
jpg:= Tjpegimage.Create ;
jpg.LoadFromFile(LoadIn);
LoadInBmp.Assign(jpg);
jpg.Free;
end;
if LowerCase(extractfileext(LoadIn))= '.png' then
begin
png:=Tpngobject.Create;
png.LoadFromFile(LoadIn);
LoadInBmp.Width := png.Width;
LoadInBmp.Height :=png.Height;
LoadInBmp.Assign(png);
png.Free;
end;
if LowerCase(extractfileext(LoadIn))= '.bmp' then
begin
LoadInBmp.LoadFromFile(LoadIn);
end;
ImageView.Width := LoadInBmp.Width;
ImageView.Height :=LoadInBmp.Height;
ImageView.Picture.Assign(LoadInBmp);
保存JPG代码如下: [FN 是完整文件名]
jpg := TJpegImage.Create;
jpg.Assign(ImageView.Picture.Bitmap);
jpg.CompressionQuality := 100;
jpg.Performance := jpBestQuality;
jpg.Compress;
jpg.SaveToFile(FN);
jpg.Free;
我试的图是这样的:
一张JPG 用PS在靠左上角的位置加入 "Sample Picture" 的红色粗体字
用PS保存后字样的周围轮廓很清晰
接着用自己的程序载入 显示在Image上还是很清晰的效果
可一保存才发现 存成的文件其它地方都还好 就是字体那一块糊了
同样用PS打开那个PS保存的JPG文件直接再存成JPG却还很清晰
后来试了一下发现
jpg:= Tjpegimage.Create ;
jpg.LoadFromFile(LoadIn);
jpg.SaveToFile(TempJpgFile);
载入时直接存效果是清晰的
转成BMP后在Image里显示也是清晰的
仅仅是BMP存成JPG时效果不行
D7自带的JPG示例里也没有保存JPG文件的代码
而且PS里的保存选项内容还挺多的 不知道怎么实现
网上也找不到介绍这类的资料
哪位大大解下惑 谢谢!
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20061019114413224.html
平时没发觉
无意中发现自己的代码保存的JPG质量不如PS的
载入代码如下: [LoadIn 是完整文件名]
LoadInBmp := Tbitmap.Create;
if (LowerCase(extractfileext(LoadIn))= '.jpeg') or (LowerCase(extractfileext(LoadIn))= '.jpg')then
begin
jpg:= Tjpegimage.Create ;
jpg.LoadFromFile(LoadIn);
LoadInBmp.Assign(jpg);
jpg.Free;
end;
if LowerCase(extractfileext(LoadIn))= '.png' then
begin
png:=Tpngobject.Create;
png.LoadFromFile(LoadIn);
LoadInBmp.Width := png.Width;
LoadInBmp.Height :=png.Height;
LoadInBmp.Assign(png);
png.Free;
end;
if LowerCase(extractfileext(LoadIn))= '.bmp' then
begin
LoadInBmp.LoadFromFile(LoadIn);
end;
ImageView.Width := LoadInBmp.Width;
ImageView.Height :=LoadInBmp.Height;
ImageView.Picture.Assign(LoadInBmp);
保存JPG代码如下: [FN 是完整文件名]
jpg := TJpegImage.Create;
jpg.Assign(ImageView.Picture.Bitmap);
jpg.CompressionQuality := 100;
jpg.Performance := jpBestQuality;
jpg.Compress;
jpg.SaveToFile(FN);
jpg.Free;
我试的图是这样的:
一张JPG 用PS在靠左上角的位置加入 "Sample Picture" 的红色粗体字
用PS保存后字样的周围轮廓很清晰
接着用自己的程序载入 显示在Image上还是很清晰的效果
可一保存才发现 存成的文件其它地方都还好 就是字体那一块糊了
同样用PS打开那个PS保存的JPG文件直接再存成JPG却还很清晰
后来试了一下发现
jpg:= Tjpegimage.Create ;
jpg.LoadFromFile(LoadIn);
jpg.SaveToFile(TempJpgFile);
载入时直接存效果是清晰的
转成BMP后在Image里显示也是清晰的
仅仅是BMP存成JPG时效果不行
D7自带的JPG示例里也没有保存JPG文件的代码
而且PS里的保存选项内容还挺多的 不知道怎么实现
网上也找不到介绍这类的资料
哪位大大解下惑 谢谢!
.`
`
TJPEGImage.CompressionQuality/GrayScale/PrograssiveEncoding等等。
mark
关注