質問
これが可能かどうかは疑問です。ファイルを右クリックすると、コンテキストメニューを追加するアプリケーションがあります。すべて正常に動作しますが、ここで私がやりたいことを示します:
ファイルがPSDの場合、プログラムで画像を抽出する必要があります。 Photoshopをインストールせずにこれを行うことは可能ですか?
基本的に、ユーザーが右クリックして[画像]をクリックするようにします。ファイルの.jpgが保存されます。
edit:C#を使用します ありがとう
解決
まあ、Paint.NET用のPSDプラグインがあります。これはオープンソースだと思うので、まずは見てみたいかもしれません:
http://frankblumenberg.de/doku/doku.php? id = paintnet:psdplugin#download
他のヒント
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
この男は簡単にできます:
http://www.codeproject.com/KB/graphics/simplepsd.aspx
C#ライブラリとサンプルプロジェクトを使用。
PS2ファイルを試してみましたが、正常に動作します。
PSDおよびPSBのすべてのバージョンからラスター形式のレイヤーを抽出するPSDパーサーを作成しました。 http://www.telegraphics.com.au/svn/psdparse/trunk
これは、私自身のpsdパーサーおよびエクスポーターです。 http://papirosnik.info/psdsplit/ 。 チャネルのRGBカラー8、16および32ビットのpsdを正しく解析し、ユーザーマスクを処理し、選択したレイヤーをjpeg、png、jng、bmp、tiffにエクスポートできます。エクスポートされたレイヤーとグループのxmlレイアウトを作成し、特定のレイヤーからテクスチャアトラスとアニメーションセットを作成します。 完全にC#で記述されています。ソースが必要な場合は、アプリケーションの[バージョン情報]ダイアログのサポートリンクを使用してお知らせください。
FastStoneはこれを非常に効率的に行います。 彼らは利用可能なライブラリを持っていませんが、私はあなたが彼らに連絡して彼らが助けることができるかどうか見ることができると思います。
ウェブサイトをご覧ください: http://www.faststone.org/download.htm
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");
}
GroupDocs.Viewer for .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でデベロッパーエバンジェリストとして働いています。
PhotoshopなしでPSDファイルをロードおよび保存できるAsposeのイメージングコンポーネントで大きな成功を収めました: https ://products.aspose.com/imaging/net