2017/10/1 (日) 19:10:47 Mr.XRAY |
> あと,問題は文字列の扱いですね.UTF-8 ...
少しやってみましたが無理があるようです.
下の図はコードそのテストの一部です.
logo.png 画像にテキスト書き込みで,サイズ変更して別名保存します.
[773] [06_ファイル名が日本語のファイルをアップロード ]
http://mrxray.on.coocan.jp/Delphi/plSamples/773_Indy_FTPGetPut.htm#06
のように MECSUtils を使ったらと思ったけど残念 !!
ファイル名だから関係ないだろう !!
なんですが,溺れる者は何とかでして ... ハハハ.
だって,
[ ImageMagick のコマンドラインツールで PDF を JPEG 画像に変換]
http://mrxray.on.coocan.jp/Delphi/Others/ImageMagick.htm#04
ではファイル名に日本語を使用してますが,動作していますから.
コマンドラインからですと UTF-8 のファイルを使用すれば処理可能
なようですが,試していません.
[Unicode or UTF8 Format Text]
http://www.imagemagick.org/Usage/text/#unicode
implementation
uses
magick_wand,
ImageMagick;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
LReadPath : UTF8String;
LWritePath : UTF8String;
Lwand : PMagickWand;
LDrawWand : PDrawingWand;
LText : UTF8String;
begin
LReadPath := ExpandFileName('logo.png');
LWritePath := ExpandFileName('logo2.png');
MagickWandGenesis;
Lwand := NewMagickWand;
LDrawWand := NewDrawingWand;
try
MagickReadImage(Lwand, PChar(LReadPath));
DrawSetFontSize(LDrawWand, 300);
LText := Utf8String('日本');
MagickAnnotateImage(Lwand, LDrawWand, 150.0, 1500.0, 0.0, PChar(LText));
MagickDrawImage(Lwand, LDrawWand);
MagickScaleImage(Lwand, 250, 250);
MagickWriteImage(Lwand, PChar(LWritePath));
finally
DestroyMagickWand(Lwand);
DestroyDrawingWand(LDrawWand);
end;
end;
最初の図が「日本」という文字列を描画したもの
次の図は「Hello!」という文字列を描画した結果
|
|