Я думаю, что единственный фактор качества печати, который вы можете с уверенностью проверить (поскольку другие факторы носят субъективный характер), - это разрешение изображения по сравнению с предполагаемым размером печати. Если у вас есть другие осязаемые требования, например, изображение должно быть цветным, а не черно-белым, вы можете это проверить. Но попытка определить, является ли изображение слишком размытым, низким контрастом и т. Д., Вероятно, будет бесполезным занятием, так как вы никогда не знаете, было ли изображение предназначено именно так или нет.
Общее правило: при печати у вас должно быть не менее 240 точек на дюйм, а 300 - еще лучше. Конечно, с качественными принтерами, более высокое разрешение, чем это, может дать лучшие результаты, и если вы печатаете очень высокую детализацию, например, мелкий текст, вы можете перейти на 600 dpi и выше.
Таким образом, для печати изображения 8 "x 10" с минимальным разрешением 240 точек на дюйм вам потребуется изображение размером не менее 1920 x 2400 пикселей (всего 4 608 000 пикселей или около 4,5 мегапикселей).
Если вы решите, что при печати 8 "x 10" вы хотите разрешение не менее 300 точек на дюйм, тогда вам нужно изображение размером не менее 2400 x 3000 пикселей, что составляет около 7 мегапикселей.
Повышение до 600 точек на дюйм? В этом случае вам потребуется изображение размером около 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();
}
}
}