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

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

28 голосов
/ 06 января 2009

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

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

По сути, я хочу, чтобы пользователь щелкнул правой кнопкой мыши и щелкнул по «изображению», чтобы сохранить для него файл .jpg.

edit: будет использовать c # Спасибо

Ответы [ 10 ]

20 голосов
/ 06 января 2009

Библиотеки ImageMagick (которые обеспечивают привязки для C # ) также поддерживают формат 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

18 голосов
/ 06 января 2009

Ну, есть плагин PSD для Paint.NET, который я считаю открытым исходным кодом, на который вы, возможно, захотите взглянуть для начала:

http://frankblumenberg.de/doku/doku.php?id=paintnet:psdplugin#download

4 голосов
/ 21 ноября 2009

Я написал PSD-парсер, который извлекает слои растрового формата из всех версий PSD и PSB. http://www.telegraphics.com.au/svn/psdparse/trunk

4 голосов
/ 12 сентября 2009

Этот парень делает это проще:

http://www.codeproject.com/KB/graphics/simplepsd.aspx

С библиотекой C # и примером проекта.

Я пробовал с файлами PS2 и работает нормально.

2 голосов
/ 12 февраля 2012

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

1 голос
/ 30 апреля 2019

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

C #

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.

1 голос
/ 06 февраля 2013

Я получил извлечение из PSD работает. смотри мой ответ здесь

Как извлечь слои из файла Photoshop? C #

может помочь кому-то еще.

1 голос
/ 29 декабря 2011

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");
}
1 голос
/ 12 сентября 2009

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

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

0 голосов
/ 02 июля 2015

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

...