0

画像のサイズを変更し、新しくサイズ変更された画像を TIFF として返す次のメソッドがあります (ResizeBilinear オブジェクトのソースである AForge ライブラリを使用しています)。

private System.Drawing.Image shrinkImageBilinear(System.Drawing.Image original, float newWidthInches, float newHeightInches)
    {
        float imageProportion = (float)original.Width / (float)original.Height;
        float newWidthPixels = original.HorizontalResolution * newWidthInches;
        float newHeightPixels = newWidthPixels / imageProportion;

        ResizeBilinear filter = new ResizeBilinear((int)newWidthPixels, (int)newHeightPixels);
        Bitmap image = new Bitmap(original);
        image = filter.Apply(image);
        Rectangle imageRect = new Rectangle(0, 0, image.Size.Width, image.Size.Height);
        image = image.Clone(imageRect, PixelFormat.Format1bppIndexed);

        MemoryStream byteStream = new MemoryStream();
        image.SetResolution(200, 200);

        image.Save(byteStream, ImageFormat.Tiff);

        Image returnImage = System.Drawing.Image.FromStream(byteStream);
        return returnImage;
    }

私が書く必要がある仕様は、TIFF ヘッダーのフォトメトリック解釈はカラー パレットを利用できないため、フォトメトリック解釈は 0 または 1 のみであり、この場合は PixelFormat.Format1bppIndexed を使用しているため 3 です。私が書いている仕様のもう 1 つの要件は、イメージが 1bpp でなければならないということです。

私の質問は、カラー パレットを利用せずにこの画像を作成し (それによって測光解釈を 1 または 0 にする)、1bpp を維持し、解像度を 200 ppi に維持し、形式を TIFF に維持するにはどうすればよいかということです。

4

1 に答える 1

0

Forge コード自体を調べると (完全なソースをダウンロード)、答えを見つけるのに十分なメモが得られます。

于 2012-11-06T19:05:35.663 に答える