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

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?