winformsアプリケーションからJPG画像を印刷しようとしています。元の画像に非常に近い色が必要ですが、OSで印刷された画像と比較すると、結果の色はより不透明です(Windowsフォトビューアーまたはワードから) .
これはコードです:
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.PageUnit = GraphicsUnit.Pixel;
e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
e.Graphics.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
e.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
//e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
e.Graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.GammaCorrected;
e.Graphics.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceCopy;
var img = Image.FromFile(@"C:\photo.jpg", true);
e.Graphics.DrawImage(img, 0, 0);
}
private void button1_Click(object sender, EventArgs e)
{
var result = printDialog1.ShowDialog();
if (result == System.Windows.Forms.DialogResult.OK)
{
printDocument1.PrinterSettings = printDialog1.PrinterSettings;
printDocument1.Print();
}
}
グラフィック プロパティ (SmoothingMode、PixelOffsetMode など) の値を変えてみましたが、実際の色を取得できません。たとえば、黒はアプリケーションで印刷するとグレーに近くなりますが、Word で印刷すると実際には黒に近くなります。
完全な写真を送ることはできませんが、これは同じプロパティを持つ JPG のセクションです。