814123 2018-06-30 14:48 采纳率: 25%
浏览 708
已采纳

delphi 可以调用cximageu.dll吗?利用cximageu.dll里的函数进行图片压缩?

cximageu.dll是C++写的,我想用delphi调用这个DLL来压缩图片,可以吗,高手帮忙看看?
能不能给个代码参考,谢谢!

  • 写回答

5条回答 默认 最新

  • threenewbee 2018-07-01 17:54
    关注

    图片说明

     unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, XPMan, StdCtrls, jpeg;
    
    type
      TForm1 = class(TForm)
        OpenDialog1: TOpenDialog;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    function fun_BmpToJpg(temp, path: String; ACQ: Integer): Boolean; stdcall;
    var
      MyJpeg: TJpegImage;
      Bmp: TBitmap;
    begin
      result := false;  
      if FileExists(temp) then
      begin
        Bmp:= TBitmap.Create;
        MyJpeg:= TJpegImage.Create;
        Bmp.LoadFromFile(temp);
        MyJpeg.Assign(Bmp);
        MyJpeg.CompressionQuality := ACQ;
        MyJpeg.Compress;
        MyJpeg.SaveToFile(Path);
        MyJpeg.free;
        Bmp.free;
        if FileExists(path) then
          result := True;
      end;
    end;
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
      temp: String;
    begin
    OpenDialog1.Execute();
    temp := OpenDialog1.FileName;
    fun_BmpToJpg(temp, ChangeFileExt(temp, '.jpg'), 100); //最后一个参数可以修改图像质量,质量越差,那么图片越小
    end;
    
    end.
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?