Je me demande si c'est même possible. J'ai une application qui ajoute un menu contextuel lorsque vous cliquez avec le bouton droit sur un fichier. Tout fonctionne bien, mais voici ce que j'aimerais faire:
Si le fichier est un fichier PSD, le programme doit extraire l'image. Est-ce possible de le faire sans avoir installé Photoshop?
Fondamentalement, je veux que l'utilisateur clique avec le bouton droit de la souris et clique sur "image" pour sauvegarder un fichier .jpg du fichier.
edit: utilisera c # Merci
Eh bien, il existe un plug-in PSD pour Paint.NET que je considère être Open-Source et que vous voudrez peut-être jeter un coup d'œil aux débutants:
http://frankblumenberg.de/doku/doku.php?id=paintnet:psdplugin#download
Les bibliothèques ImageMagick (qui fournissent les liaisons pour C # ) prennent également en charge le format PSD. Ils sont peut-être plus faciles à utiliser que d’obtenir le code Paint.NET et sont livrés avec une licence assez libre (de type BSD).
Un exemple simple (disponible sur http://midimick.com/magicknet/magickDoc.html) utilisant MagickNet ressemblerait à ceci:
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();
}
Remarque: MagickNet a été déplacé vers http://www.codeproject.com/KB/dotnet/ImageMagick_in_VBNET.aspx
Ce mec le fait plus facilement:
http://www.codeproject.com/KB/graphics/simplepsd.aspx
Avec une bibliothèque C # et un exemple de projet.
J'ai essayé avec les fichiers PS2 et ça marche.
J'ai écrit un analyseur PSD qui extrait les couches de format raster de toutes les versions de PSD et PSB. http://www.telegraphics.com.au/svn/psdparse/trunk
Voici mon propre analyseur et exportateur psd: http://papirosnik.info/psdsplit/ . Il permet d’analyser correctement psd avec les couleurs 8, 16 et 32 bits de la couche RVB pour les canaux, de traiter les masques des utilisateurs, d’exporter les couches sélectionnées au format jpeg, png, jng, bmp, tiff; Créez une mise en page XML des couches et des groupes exportés et créez également un atlas de texture et des animations définies à partir de couches données. C'est entièrement écrit en C #. Si vous souhaitez que ses sources m'en informent via le lien d'assistance de la boîte de dialogue À propos de dans l'application.
J'ai eu l'extraction de psd de travail. voir ma réponse ici
Comment extraire des calques d'un fichier Photoshop? C #
peut aider quelqu'un d'autre.
FastStone le fait très efficacement. Leurs bibliothèques ne sont pas disponibles, mais je suppose que vous pouvez les contacter et voir s'ils peuvent vous aider.
Visitez leur site web: http://www.faststone.org/download.htm
ImageMagick.NET - http://imagemagick.codeplex.com/ - est la version la plus récente du lien donné par 0xA3, avec une syntaxe légèrement différente. (Remarque, ceci n'est pas testé):
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");
}
J'ai eu beaucoup de succès avec le composant d'imagerie d'Aspose, qui permet de charger et d'enregistrer des fichiers PSD sans Photoshop: https://products.aspose.com/imaging/net