814123 2018-06-30 14:48 采纳率: 50%
浏览 707
已采纳

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条)

报告相同问题?

悬赏问题

  • ¥15 应用简单的Python代码完成一个学生成绩管理系统
  • ¥15 用matlab求微分方程初值问题
  • ¥15 vscode下编写第三方库opencv与pcl代码时没有代码提示
  • ¥15 能够跑通不报错,如何解决?(标签-matlab)
  • ¥15 MOS在RDS较大,频率高时开关波形异常
  • ¥15 SCENIC分析报错求解答
  • ¥15 ceph初始化mon不成功 下图不报错 这个是什么元
  • ¥15 数学建模数学建模少ai
  • ¥35 这个等效电路图是什么意思?(答疑)(有没有不是chat的,我就是在chat搜不到才来问的,chat还开了VIP)(可以追加酬金)
  • ¥200 基于同花顺supermind的量化策略脚本编辑