814123 2018-06-30 14:48 采纳率: 33.3%
浏览 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 Stata链式中介效应代码修改
  • ¥15 latex投稿显示click download
  • ¥15 请问读取环境变量文件失败是什么原因?
  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错