2

テキストを書き込みたいモノクロ TIFF ファイル (1 bpp) があります。それらを System.Drawing.Image にロードし、その画像から Graphics オブジェクトをインスタンス化しようとすると、「インデックス付きピクセル形式の画像から Graphics オブジェクトを作成できません」というエラーが表示されます。

画像を JPEG などのインデックスのない形式に変換できますが、結果の画像サイズが非常に大きくなります。

画像サイズを小さく保ちながらこれを達成したいと思います。これらの画像を別の形式に変換せずに、これらの画像にテキストを書き込むにはどうすればよいですか?

4

3 に答える 3

3

Hans Passant が残したコメントのアイデアを使用して、コード プロジェクトに関する次の記事を見つけました

このコードを修正して、画像を 32bpp に変換し、その画像にテキストを書き込んでから、1bpp に変換しました。

于 2012-04-26T12:59:44.513 に答える
2

System.Drawing.Bitmap.Clone を使用してメモリ内の画像を変換できます。これにより、小さいファイル サイズの要件が満たされます。winforms で TIF が必要な場合は、TiffBitmapEncoder を使用します。

Bitmap bmpTif = new Bitmap(imagePath);

Bitmap bmp = bmpTif.Clone(new Rectangle(0, 0, pageWidth, pageHeight),
    PixelFormat.Format32bppRgb);

Graphics g = Graphics.FromImage(bmp);

// Do your g.DrawString's

Bitmap bmpNew = bmp.Clone(new Rectangle(0, 0, pageWidth, pageHeight),
    PixelFormat.Format1bppIndexed);
bmpNew.Save(imagePath2);
于 2014-01-21T17:50:43.303 に答える
1

TIFF 画像をサポートするImageMagick.NETなどの画像操作 API を使用できます。Annotate メソッドを使用してテキストをレンダリングできると思います。

お役に立てれば。

于 2012-04-25T21:45:18.283 に答える