使用DCRaw从DNG图像中提取缩略图

时间:2015-05-12 10:36:37

标签: c# thumbnails dng dcraw

我使用DCRaw作为命令行实用程序从DNG图像中提取缩略图。缩略图颜色很明显,反转它们也无济于事。

我用相机拍了照片,预览看起来像这样: enter image description here

以下是我致电DCRAW的方式:

 Settings oSettings = Settings.GetInstance();
 var startInfo = new ProcessStartInfo(dcRawPath)
 {
    Arguments = "-e \"" + sInputFileName + "\"",
    UseShellExecute = true,
    RedirectStandardOutput = false,
    WindowStyle = ProcessWindowStyle.Hidden,
    CreateNoWindow = true,
    WorkingDirectory = RootDirectory
 };
 var process = Process.Start(startInfo);

结果ppm文件如下所示: enter image description here

我尝试使用以下代码反转缩略图:

static readonly ColorMatrix _inverseColorMatrix = new ColorMatrix(new[]
{
   new float[] {-1, 0, 0, 0, 0},
   new float[] {0, -1, 0, 0, 0},
   new float[] {0, 0, -1, 0, 0},
   new float[] {0, 0, 0, 1, 0},
   new float[] {1, 1, 1, 0, 1}
});

public static Bitmap InverseImage(Bitmap source)
{
   var newBitmap = new Bitmap(source.Width, source.Height);
   using (var g = Graphics.FromImage(newBitmap))
   {
      var attributes = new ImageAttributes();
      attributes.SetColorMatrix(_inverseColorMatrix);
      g.DrawImage(source, new Rectangle(0, 0, source.Width, source.Height),
                            0, 0, source.Width, source.Height, GraphicsUnit.Pixel, attributes);
   }

   return newBitmap;
}

这给了我这样的缩略图:

enter image description here

我使用Photoshop得到了相同的结果,这意味着代码正确地反转了图像,但似乎这不是解析DNG缩略图的方法。

如何反转DCRaw生成的缩略图以提供与第一张图像非常相似的正确颜色。

注意:我的相机是带有DNG输出的Lumia 1020。

编辑:原始DNG文件可以从Here

下载

0 个答案:

没有答案