4

写真が印刷に適しているかどうか、アプリケーションを使用していないかどうかを確認したいのですが、どうすればよいですか?写真の品質についてよくわかりませんか?すべての写真の解像度は同じですか?

4

2 に答える 2

3

確実に確認できる印刷品質の唯一の要因は(他の要因は主観的なものであるため)、画像の解像度と意図した印刷サイズの関係だと思います。画像が白黒ではなくカラーでなければならないなど、他の具体的な要件がある場合は、それも確認できます。ただし、画像がぼやけすぎているか、コントラストが低いかなどを特定しようとすると、画像がそのように意図されているかどうかがわからないため、無駄な作業になる可能性があります。

一般的な経験則では、印刷時には1インチあたり少なくとも240ドットが必要であり、300ドットの方がさらに優れています。もちろん、高品質のプリンターでは、それよりも高い解像度でより良い結果が得られます。細かいテキストなどの非常に詳細な印刷を行う場合は、600dpi以上にすることをお勧めします。

したがって、240dpiの最小値を使用して8"x 10"の画像を印刷するには、少なくとも1920 x 2400ピクセル(合計4,608,000ピクセル、つまり約4.5メガピクセル)の画像が必要になります。

8 "x 10"を印刷するときに少なくとも300dpiが必要な場合は、少なくとも2400 x 3000ピクセル、つまり約7メガピクセルの画像が必要です。

600dpiにステップアップしますか?その場合、約28メガピクセルの画像が必要になります。

例:

using System;
using System.Drawing;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int minimumPrintDpi = 240;
            int targetPrintWidthInches = 8;
            int targetPrintHeightInches = 10;
            int minimumImageWidth = targetPrintWidthInches * minimumPrintDpi;
            int minimumImageHeight = targetPrintHeightInches * minimumPrintDpi;

            var img = Image.FromFile(@"C:\temp\CaptainKangaroo.jpg");

            Console.WriteLine(string.Format("Minimum DPI for printing: {0}", minimumPrintDpi));
            Console.WriteLine(string.Format("Target print size: width:{0}\" x height:{1}\"", targetPrintWidthInches, targetPrintHeightInches));
            Console.WriteLine(string.Format("Minimum image horizontal resolution: {0}", minimumImageWidth));
            Console.WriteLine(string.Format("Minimum image vertical resolution: {0}", minimumImageHeight));
            Console.WriteLine(string.Format("Actual Image horizontal resolution: {0}", img.Width));
            Console.WriteLine(string.Format("Actual Image vertical resolution: {0}", img.Height));
            Console.WriteLine(string.Format("Actual image size in megapixels: {0}", ((float)img.Height * img.Width) / 1000000));
            Console.WriteLine(string.Format("Image resolution sufficient? {0}", img.Width >= minimumImageWidth && img.Height >= minimumImageHeight));
            Console.WriteLine(string.Format("Maximum recommended print size for this image: width:{0}\" x height:{1}\"", (float)img.Width / minimumPrintDpi, (float)img.Height / minimumPrintDpi));

            Console.ReadKey();
        }
    }
}
于 2010-03-28T12:59:43.790 に答える
0

「高品質」と「低品質」の画像を区別する要因は非常にたくさんあります。

ウィキペディアにはそれらの要因の短いリストがあります

これらのほとんどは、プログラムでチェックするのがかなり難しく、複雑なイメージングアルゴリズムを伴います。ただし、解像度の確認は、それが良い画像と悪い画像の間の唯一の基準である場合は簡単です。

この簡単なコードはそれを行う方法を教えてくれます

解像度を得るための最も基本的なコードはこれだと思います

  Bitmap bmp = new Bitmap("winter.jpg");

  Console.WriteLine("Image resolution: " + bmp.HorizontalResolution + " DPI");
  Console.WriteLine("Image resolution: " + bmp.VerticalResolution + " DPI");
  Console.WriteLine("Image Width: " + bmp.Width);
  Console.WriteLine("Image Height: " + bmp.Height);
于 2010-03-28T12:08:12.273 に答える