سؤال

أتساءل ما إذا كان هذا ممكنًا. لدي تطبيق يضيف قائمة سياق عند النقر بزر الماوس الأيمن على ملف. كل شيء يعمل بشكل جيد ولكن هنا ما أود القيام به:

إذا كان الملف هو PSD ، فأريد أن يستخرج البرنامج الصورة. هل من الممكن القيام بذلك دون تثبيت Photoshop؟

في الأساس ، أريد أن ينقر المستخدم على النقر بزر الماوس الأيمن والنقر فوق "صورة" من شأنه أن يحفظ .jpg من الملف له.

تحرير: سوف تستخدم C# شكرًا

هل كانت مفيدة؟

المحلول

حسنًا ، هناك مكون إضافي PSD لـ Paint.net أعتقد أنه مفتوح المصدر الذي قد ترغب في إلقاء نظرة عليه للمبتدئين:

http://frantblumenberg.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 الذي يستخرج طبقات تنسيق نقطية من جميع إصدارات PSD و PSB. http://www.telegraphics.com.au/svn/psdparse/trunk

إليكم محلل PSD الخاص بي ومصدره:http://papirosnik.info/psdsplit/. يسمح بتحليل PSD بشكل صحيح مع RGB Color 8 و 16 و 32 بت للقناة ، وأقنعة المستخدمين ، وتصدير الطبقات المحددة إلى 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");
}

حصلت على استخراج من العمل PSD. انظر إجابتي هنا

كيفية استخراج الطبقات من ملف Photoshop؟ ج#

قد تساعد شخص آخر.

يمكنك استخدام 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.

لقد حققت نجاحًا كبيرًا مع مكون التصوير في Aspose والذي يمكنه تحميل ملفات PSD وحفظها بدون Photoshop: https://products.aspose.com/imaging/net

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top