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

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

图片说明

 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.

不知道你说得是什么,是opencv么?当然可以。如果是你自己写的库,有函数原型、类型兼容就可以调用。

图片说明
这个是这个DLL的函数表

看了下,这个里面有很多c++的成员函数,用delphi直接调用有难度,你有两个办法,第一个是用c++再封装一次,导出没有成员函数的普通函数,再delphi调用。
或者,找别的压缩图片的,适用delphi的库,这种代码有很多。

图像压缩处理转格式, 高版本delphi直接用自带的TWICImage来做, 底层调用的是windows的wincode

用法参考万一的博客: https://www.cnblogs.com/del/archive/2009/10/19/1586264.html