掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Delphi+ImageMagick (ID:34094)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
回転・反転・傾斜 http://magickwand.blog43.fc2.com/blog-category-39.html 拡大・縮小・切抜き http://magickwand.blog43.fc2.com/blog-category-38.html procedure test01; var status: MagickBooleanType; wand: PMagickWand; st:string; PC:PCardinal; PB:PByte; PByteA:PByteArray; F:TFileStream; Jpeg :TJpegImage; PJpeg:^TJpegImage; begin { Read an image. } MagickWandGenesis; wand := NewMagickWand; try //status := MagickReadImage(wand, 'image.png'); status := MagickReadImage(wand, 'test01.tif'); //status := MagickReadImage(wand, 'test02.jpg'); if (status = MagickFalse) then ThrowWandException(wand); { Turn the images into a thumbnail sequence. } MagickResetIterator(wand); while (MagickNextImage(wand) <> MagickFalse) do begin MagickResizeImage(wand, 250, 250, LanczosFilter, 1.0); MagickFlipImage(wand); MagickCropImage(wand,100,100,50,50); MagickSetFormat(wand,Pchar('JPEG')); //BITMAPでは失敗する何と指定すればいいのか不明? New(PC); New(PB); PB:=MagickGetImageBlob(wand,PC); PByteA:=Pointer(PB); F:=TfileStream.Create('test4.jpg',fmCreate); F.Write(PByteA^,Cardinal(PC^)); F.Free; Form1.BitBtn1.Caption:= Format( '%6d',[Cardinal(PC^)]); //H210425 ここまでは上手く行く //test4.jpgとimage.jpgは同じ物が作られる //下記の処理でフリーズする、ポインターの扱い方が分からない (* Jpeg:=TJpegImage.Create; PJpeg:=Pointer(PB); Jpeg.Assign(TJpegImage(PJpeg^)); Form1.Image1.Picture.Assign(Jpeg); Jpeg.Free; *) end; { Write the image as MIFF and destroy it. } status := MagickWriteImages(wand, 'image.jpg', MagickTrue); if (status = MagickFalse) then ThrowWandException(wand); finally wand := DestroyMagickWand(wand); MagickWandTerminus; end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.