我有一批图片,想通过windows的画图板程序 读入->另存一下,想做一个功能,能在后台调用 windows的画图板程序,载入图片,另存,整个过程不出现界面,都是自动完成的,这个要怎么操作画图板呢,请高手指教。  

解决方案 »

  1.   

    我的这些图片可能是被处理过,直接用delphi中的image控件是打不开的,经过画图板另存以后,就可以正常浏览了,所以想先做一下另存操作
      

  2.   

    我估计他是想调整jpg的质量,然后缩小文件的体积
    你可以这样
    uses Jpegfunction JpegCompress(FileName: string; Quality: TJPEGQualityRange);
    var
      Jpg: TJPEGImage;
    begin
      Jpg := TJPEGImage.Create;
      try
        Jpg.LoadFromFile(FileName);
        Jpg.CompressionQuality := Quality;
        Jpg.Compress;
        Jpg.SaveToFile(FileName);
      finally
        Jpg.Free;
      end;
    end;
      

  3.   

    哎,我主程序中的浏览控件就是用的 ImageEn,还有柯达的那个imgedit, 但是都打不开我的这些文件,是jpeg格式的,报错。可能是比较大,我的那些文件有的在3M多,我通过windows的画图板程序可以正常浏览,另存了以后,体积确实变小了,也能通过 imageEn, imgedit浏览了,我不知道是不是体积的问题。
    to lake_cx:您的压缩程序我也试过,压缩以后就文件体积大小就变成0了。
      

  4.   

    不好意思,是我没测试过,应该是这样
    procedure JpegCompress(FileName: string; Quality: TJPEGQualityRange);
    var
      Jpg: TJPEGImage;
    begin
      Jpg := TJPEGImage.Create;
      try
        Jpg.LoadFromFile(FileName);
        Jpg.DIBNeeded;
        Jpg.CompressionQuality := Quality;
        Jpg.Compress;
        Jpg.SaveToFile(FileName);
      finally
        Jpg.Free;
      end;
    end;
      

  5.   

    你可以用AcdSee浏览这些图片所在文件夹,然后批量转一下
      

  6.   


    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs,ShellAPI, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
      shellexecute(0,'open','mspaint.exe',nil,nil,3);
    end;end.