Подтвердить что ты не робот

Чтение формата PSD файла

Интересно, возможно ли это. У меня есть приложение, которое добавляет контекстное меню при щелчке правой кнопкой мыши по файлу. Все работает отлично, но вот что я хотел бы сделать:

Если файл является PSD, я хочу, чтобы программа извлекала изображение. Можно ли это сделать без установки Photoshop?

В принципе, я хочу, чтобы пользователь щелкнул правой кнопкой мыши и щелкнул "образ", который сохранил бы .jpg файла для них.

edit: будет использовать С# Благодаря

4b9b3361

Ответ 2

Библиотеки ImageMagick (которые обеспечивают привязки для С#) также поддерживают формат PSD. С ними легче начать работу, чем попасть в код Paint.NET, а также получить бесплатную (BSD-подобную) лицензию.

Простой пример (найденный в http://midimick.com/magicknet/magickDoc.html) с использованием MagickNet будет выглядеть так:

using System;

static void Main(string[] args)
{
    MagickNet.Magick.Init();
    MagicNet.Image img = new MagicNet.Image("file.psd");
    img.Resize(System.Drawing.Size(100,100));
    img.Write("newFile.png");
    MagickNet.Magick.Term();
}

Примечание. MagickNet переместилась на http://www.codeproject.com/KB/dotnet/ImageMagick_in_VBNET.aspx

Ответ 5

Вот мой собственный синтаксический анализатор и экспортер psd: http://papirosnik.info/psdsplit/.  Это позволяет правильно разобрать psd с цветом rgb 8, 16 и 32 бит для канала, обработать пользовательские маски, экспортировать выбранные слои в jpeg, png, jng, bmp, tiff; создать xml-раскладку экспортированных слоев и групп, а также создать атлас текстуры и анимации, заданные из заданных слоев. Он полностью написан на С#. Если вы хотите, чтобы его источники сообщали мне по ссылке поддержки в диалоговом окне "О программе" в приложении.

Ответ 6

FastStone делает это довольно эффективно. У них нет доступных библиотек, но я думаю, вы можете связаться с ними и посмотреть, могут ли они помочь.

Посетите веб-сайт: http://www.faststone.org/download.htm

Ответ 7

ImageMagick.NET - http://imagemagick.codeplex.com/ - это более поздняя версия ссылки 0xA3, с немного отличающимся синтаксисом. (Обратите внимание, что это не проверено):

using ImageMagickNET;

public void Test() {
        MagickNet.InitializeMagick();
        ImageMagickNET.Image img = new ImageMagickNET.Image("file.psd");
        img.Resize(new Geometry(100, 100, 0, 0, false, false);
        img.Write("newFile.png");
}

Ответ 9

Я имел большой успех с компонентом Aspose Imaging, который может загружать и сохранять PSD файлы без Photoshop: https://products.aspose.com/imaging/net

Ответ 10

Вы можете использовать GroupDocs.Viewer для .NET API, чтобы визуализировать ваши PSD файлы как изображения (JPG, PNG, BMP) в вашем приложении, используя несколько строк кода.

С#

ViewerConfig config = new ViewerConfig();
config.StoragePath = "D:\\storage\\";

// Create handler
ViewerImageHandler imageHandler = new ViewerImageHandler(config);

// Guid implies that unique document name 
string guid = "sample.psd";

// Get document pages as images
List<PageImage> pages = imageHandler.GetPages(guid);

foreach (PageImage page in pages)
{
    // Access each image using page.Stream
}

Для более подробной информации и примера кода, пожалуйста, посетите здесь. Раскрытие информации: я работаю евангелистом разработчика в GroupDocs.