قراءة تنسيق ملف PSD
-
03-07-2019 - |
سؤال
أتساءل ما إذا كان هذا ممكنًا. لدي تطبيق يضيف قائمة سياق عند النقر بزر الماوس الأيمن على ملف. كل شيء يعمل بشكل جيد ولكن هنا ما أود القيام به:
إذا كان الملف هو 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