Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#resize,resave.tif as.jpg为新图像提供蓝色色调_C#_Save_Tiff_Jpeg - Fatal编程技术网

C#resize,resave.tif as.jpg为新图像提供蓝色色调

C#resize,resave.tif as.jpg为新图像提供蓝色色调,c#,save,tiff,jpeg,C#,Save,Tiff,Jpeg,我正在构建一个批处理程序,将.tif图像目录保存为.jpgs。处理工作正常。但是,渲染的JPG具有蓝色色调。他们不是“蓝色”,因为他们有一个较冷的色调,蓝色色调。原稿的颜色更亮更暖。以下是我创建调整大小的jpeg的方式: Bitmap bitmap = new Bitmap(image.Image, size); Graphics graphics = Graphics.FromImage(bitmap); graphics.Interpolat

我正在构建一个批处理程序,将.tif图像目录保存为.jpgs。处理工作正常。但是,渲染的JPG具有蓝色色调。他们不是“蓝色”,因为他们有一个较冷的色调,蓝色色调。原稿的颜色更亮更暖。以下是我创建调整大小的jpeg的方式:

        Bitmap bitmap = new Bitmap(image.Image, size);

        Graphics graphics = Graphics.FromImage(bitmap);
        graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
        graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
        graphics.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.None;
        graphics.DrawImage(image.Image, 0, 0, size.Width, size.Height);

        // Get EncoderInfo("image/jpeg") gets the jpeg Codec by mime type
        bitmap.Save(path, GetEncoderInfo("image/jpeg"), EncoderParameters);
原始tif图像的大小为7MB,与渲染的JPEG相比大。也许这与此有关。不确定


我在谷歌上的搜索结果是空的。有没有人对此有经验,或者对下一步的尝试有什么建议?谢谢

我首先建议做一个测试:

  • 创建一个单一颜色的普通图像
  • 将其转换为jpeg格式
  • 然后检查照片包中的色调是否发生了变化,或者这是否是你的感觉

  • 可能是原始文件具有颜色配置文件。在这种情况下,您还需要将该信息复制到新文件中。我不知道如何使用.NET的imaging类来实现这一点。

    从MSDN文档中可以看出,您可以更简单地实现这一点(假设image.image是实际的System.Drawing.image实例):

    
    image.image.Save(路径,系统.绘图.图像格式.Jpeg)
    


    这可能会有所帮助-看起来您正在使用TIF,转换为位图,然后才转换为JPG。

    代码没有多大意义,您正在将位图绘制在自身之上。这可能会有一些副作用。编码器参数似乎做了些什么,不可用什么。也许这就是你用于颜色配置文件的东西?我自己正在调查这个问题: