Компонент DotImage Photo Pro работал хорошо, но у меня была проблема с извлечением изображения предварительного просмотра из необработанных файлов, используя его. Этот проект также выходит за рамки моего бюджета.
Но я нашел код для RAW-плагина для Paint.NET здесь , и его было довольно просто адаптировать к моим потребностям. Плагин запускает исполняемый файл DCRaw с именем Process.Start
и считывает его вывод из потока StandardOutput
. Довольно просто и быстро! :-)
Edit:
Ссылка на плагин больше не работает, но вот код, который я использовал для извлечения изображений. Следующий код извлекает jpg-preview, сохраненный в необработанном файле. Если вы хотите получить полное изображение, вы должны удалить аргумент -e. Но имейте в виду, что для некоторых камер вы получите ppm-изображение, которое GDI + не может прочитать.
public Stream GetImageData(string inputFile, string dcRawExe)
{
var startInfo = new ProcessStartInfo(dcRawExe)
{
Arguments = "-c -e \"" + inputFile + "\"",
RedirectStandardOutput = true,
UseShellExecute = false
};
var process = Process.Start(startInfo);
var image = Image.FromStream(process.StandardOutput.BaseStream);
var memoryStream = new MemoryStream();
image.Save(memoryStream, ImageFormat.Png);
return memoryStream;
}
Также вам понадобится копия DCRaw. Я использовал DcrawMS.exe с этого сайта: http://www.insflug.org/raw/Downloads/