0

ディスカッション\フォーラム/スタックオーバーフロー/公式ドキュメントを少し検索しましたが、私がしようとしていることを達成する方法について多くの情報を見つけることができませんでした. 公式ドキュメントのほとんどは、ImageMagick のコマンドライン バージョンをカバーしています。

私がやろうとしていることを説明します。大きな画像に貼り付けたい画像が読み込まれています。例: 読み込んだ画像の幅は 9920、高さは 7085 です。大きなもの(幅10594、高さ7387)の真ん中に置きたいです。すべてのボーダー計算の準備ができています ([大きい幅 - 元の幅 / 2] 、高さについても同じです)。

しかし、MagickImage を使用してそれを行う方法がわかりません。これが私が得た最大値です:

private void drawInkzone(MagickImage loadedImage, List<string>inkzoneAreaInformation, string filePath)
    {
        unitConversion converter = new unitConversion();
        List<double> inkZoneInfo = inkZoneListFill(inkzoneAreaInformation);
        float DPI = getImageDPI(filePath);
        double zoneAreaWidth_Pixels = converter.mmToPixel(inkZoneInfo.ElementAt(4), DPI);
        double zoneAreaHeight_Pixels = converter.mmToPixel(inkZoneInfo.ElementAt(5), DPI);
        using (MagickImage image = new MagickImage(MagickColor.FromRgb(255, 255, 255), Convert.ToInt32(zoneAreaWidth_Pixels), Convert.ToInt32(zoneAreaHeight_Pixels)))
        {
            //first: defining the larger image, with a white background (must be transparent, but for now its okay)
            using (MagickImage original = loadedImage.Clone())
            {
                //Cloned the original image (already passed as parameter)

            }
        }

これが私が得た最大値です。これを達成するために、次の投稿を使用しました。

ImageMagick で画像の一部のみを処理するには?

また、私は常により大きな TIFF ファイル (高解像度) で作業するため、GDI+ を使用していません。GDI+ は、すべてを処理できない場合 (パラメーターが無効、メモリ不足)、例外をスローする傾向があります (3 つの画像を読み込んだ場合)。そのような解像度で、メモリ不足になりました)。

どんな助けでも親切に感謝します、ありがとう。パブロ。

4

2 に答える 2