delphi2007 教程

delphi2007 教程

首页 新随笔 联系 聚合 管理
  1013 Posts :: 0 Stories :: 28 Comments :: 0 Trackbacks
像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里的保存选项内容还挺多的     不知道怎么实现  
   
      网上也找不到介绍这类的资料  
   
      哪位大大解下惑     谢谢!  
   
 

.`  
  `  
 

TJPEGImage.CompressionQuality/GrayScale/PrograssiveEncoding等等。  
 

mark

关注

posted on 2008-12-19 10:01 delphi2007 阅读(386) 评论(0)  编辑 收藏 引用
只有注册用户登录后才能发表评论。