Odczyt formatu pliku PSD
Zastanawiam się, czy to w ogóle możliwe. Mam aplikację, która dodaje menu kontekstowe po kliknięciu prawym przyciskiem myszy pliku. Wszystko działa dobrze, ale oto co chciałbym zrobić:
Jeśli plik jest PSD, chcę, aby program wyodrębnił obraz. Czy można to zrobić bez zainstalowanego Photoshopa?
Zasadniczo chcę, aby użytkownik kliknął prawym przyciskiem myszy i kliknął "obrazek", który zapisałby .plik jpg dla nich.
Edit: będzie używał c# Dzięki
9 answers
No to jest plugin PSD dla Paint.NET myślę, że jest to Open-Source, na które warto spojrzeć na początek:
Http://frankblumenberg.de/doku/doku.php?id=paintnet:psdplugin#download
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-05 23:14:35
Biblioteki ImageMagick (które zapewniają wiązania dla C#) również obsługują format PSD. Mogą być łatwiejsze do rozpoczęcia niż dostanie się do Paint.NET kod, a także są dostarczane z całkiem darmową (podobną do BSD) licencją.
Prosta próbka (znaleziona w http://midimick.com/magicknet/magickDoc.html) użycie MagickNet wyglądałoby tak:
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();
}
Uwaga: MagickNet przeniósł się do http://www.codeproject.com/KB/dotnet/ImageMagick_in_VBNET.aspx
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-08 17:43:53
Ten facet robi to łatwiej:
Http://www.codeproject.com/KB/graphics/simplepsd.aspx
Z biblioteką C# i przykładowym projektem.
Próbowałem z plikami PS2 i Działa ok.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-12 10:23:42
Napisałem parser PSD, który wyodrębnia warstwy w formacie rastrowym ze wszystkich wersji PSD i PSB. http://www.telegraphics.com.au/svn/psdparse/trunk
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-11-21 07:18:17
Oto mój własny parser i eksporter psd: http://papirosnik.info/psdsplit/. Pozwala na poprawne parsowanie psd z kolorem rgb 8, 16-i 32-bitowym dla kanału, przetwarzanie masek użytkownika, eksport wybranych warstw do jpeg, png, JNG, bmp, tiff; tworzenie układu XML eksportowanych warstw i grup, a także tworzenie atlasu tekstur i zestawów animacji z podanych warstw. Jest w całości napisany w C#. Jeśli chcesz, aby jego źródła Poinformuj mnie za pomocą linku wsparcia na temat okna dialogowego w aplikacji.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-24 20:32:10
FastStone robi to całkiem sprawnie. Nie ma swoich bibliotek, ale myślę, że możesz się z nimi skontaktować i zobaczyć, czy mogą pomóc.
Sprawdź ich stronę: http://www.faststone.org/download.htm
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-12 10:07:55
ImageMagick.NET - http://imagemagick.codeplex.com/ - jest późniejszą wersją linku podanego przez 0xa3, z nieco inną składnią. (Uwaga, nie jest to testowane):
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");
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-29 07:26:36
Dostałem wyciąg z psd działa. zobacz moją odpowiedź tutaj
Jak wyodrębnić warstwy z pliku Photoshop? C #
Może pomóc komuś innemu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:33:13
Miałem wielki sukces z komponentem Imaging Aspose, który może ładować i zapisywać pliki PSD bez Photoshopa: https://products.aspose.com/imaging/net
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-18 09:37:31