[Delphi (Object Pascal)] Delphi调用ImageMagickObject进行图片转换的代码 →→→→→进入此内容的聊天室

来自 , 2020-05-05, 写在 Delphi (Object Pascal), 查看 156 次.
URL http://www.code666.cn/view/86ba98bc
  1. procedure TFormMain.Convert( ImgSource, ImgDest:TImage; SizeX, SizeY : Integer;PixelFormat: TPixelFormat);
  2.  var
  3.    SrcName, DestName : String;
  4.    sa_cmdline : Variant;
  5.    Params : PSafeArray;
  6.    StrList : TStringList;
  7.    i : Integer;
  8.  begin
  9.    StrList := TStringList.Create;
  10.    SrcName := ExtractFilePath(Application.ExeName)+'tmp.bmp';
  11.    DestName := Format(ExtractFilePath(Application.ExeName)+'tmpdest%d_%d.bmp',[SizeX,ord(PixelFormat)]);
  12.    ImgSource.Picture.SaveToFile(SrcName);
  13.    StrList.Add('-geometry');
  14.    StrList.Add(Format('%dx%d',[Sizex,SizeY]));
  15.    Case PixelFormat of
  16.      pf1bit  : begin
  17.        StrList.Add('-monochrome');
  18.        StrList.Add('-dither');
  19.      end;
  20.      pf4bit  : begin
  21.        StrList.Add('-colors');
  22.        StrList.Add('-16');
  23.        StrList.Add('-dither');
  24.      end;
  25.      pf8bit  : begin
  26.        StrList.Add('-colors');
  27.        StrList.Add('-256');
  28.        StrList.Add('-dither');
  29.      end;
  30.      pf16bit : begin
  31.        StrList.Add('-colors');
  32.        StrList.Add('-65536');
  33.      end;
  34.    end;
  35.    StrList.Add(SrcName);
  36.    StrList.Add(DestName);
  37.    sa_cmdline := VarArrayCreate([0,StrList.Count-1], varVariant);
  38.    for i := 0 to StrList.Count-1 do
  39.      sa_cmdline[i]:=StrList[i];
  40.    Params := PSafeArray(TVarData(sa_cmdline).VArray);
  41.    MagickImage1.Convert(Params);
  42.    ImgDest.Picture.LoadFromFile(DestName);
  43.    StrList.Free;
  44.  end;
  45. //delphi/8993

回复 "Delphi调用ImageMagickObject进行图片转换的代码"

这儿你可以回复上面这条便签

captcha