إذا كنت تعمل مع الرسومات على الويب، أو لوحات المعلومات، أو تقارير البيانات، فمن المحتمل أنك واجهت الحاجة إلى تحويل صور SVG إلى ملفات PNG قياسية. ربما تقوم بإنشاء تطبيق بايثون يقوم بإنشاء الرسوم البيانية، أو الرموز، أو التقارير المرئية. بغض النظر عن حالة الاستخدام، فإن تحويل كود SVG إلى PNG هو مهمة ستحتاج إلى التعامل معها كثيرًا.

في هذا الدليل، سنستعرض كيفية تحويل كود وملفات SVG بسهولة إلى تنسيق PNG في بايثون باستخدام مكتبة بايثون موثوقة مصممة لرسم ومعالجة ملفات SVG بدقة استثنائية.

ما هو كود SVG، ولماذا يجب تحويله إلى PNG؟

SVG (Scalable Vector Graphics) هو تنسيق يعتمد على XML وهو رائع لإنشاء صور ثنائية الأبعاد حادة. نظرًا لأنه يعتمد على المتجهات، يمكن أن يتوسع صورة SVG إلى أي حجم دون فقدان الجودة، مما يجعله مثاليًا للواجهات الحديثة، ومخططات البيانات، والرسوم البيانية التفاعلية على الويب.

لكن هذه هي الفكرة: بينما تكون SVGs مرنة، غالبًا ما تكون PNGs أكثر عملية. لماذا؟

  • تعمل PNGs في كل مكان في جميع المتصفحات، والمحررات، وعارضات الملفات.
  • إنها سهلة للمشاركة والتضمين في المستندات أو العروض التقديمية أو رسائل البريد الإلكتروني.
  • تتحمل الصور النقطية مثل PNG عادة بشكل أسرع في العديد من التطبيقات والبيئات.

ببساطة، يساعد تحويل كود SVG إلى PNG في ضمان أن تبدو رسوماتك حادة ومتسقة عبر كل جهاز ومنصة - حتى عندما لا يكون دعم المتجهات مضمونا.

مكتبة بايثون لتحويل كود SVG إلى PNG

Aspose.SVG for Python via .NET هي واجهة برمجة تطبيقات مخصصة لتحليل وتحرير وعرض مستندات SVG في تطبيقات Python. إنها تتيح لك:

  • قم بتحويل SVGs إلى تنسيقات متعددة، بما في ذلك PNG و JPEG و BMP و PDF و XPS.
  • قم بتحميل SVGs من سلاسل نصية أو ملفات أو URLs.
  • تحكم في حجم صورة الإخراج، ودقة النقاط في البوصة (DPI)، ولون الخلفية.
  • اعمل بالكامل بدون اتصال بالإنترنت، لا حاجة لمتصفحات أو برامج عرض من طرف ثالث.

قبل أن نبدأ في الكود، تأكد من أنك قد قمت بتثبيت المكتبة. يمكنك تنزيل Aspose.SVG for Python مباشرة من صفحة الإصدارات الرسمية، أو يمكنك ببساطة إضافتها باستخدام pip:

pip install aspose-svg-net

Convert SVG Code to PNG in Python

دعنا نبدأ بتحويل كود SVG المخزن كسلسلة إلى صورة PNG. هذه الطريقة مثالية لـ SVGs التي تم إنشاؤها ديناميكيًا، مثل الرسوم البيانية أو المخططات المستلمة من API.

اتبع الخطوات أدناه لتحويل رمز SVG من سلسلة إلى صورة PNG:

  1. قم بتحميل كود SVG كسلسلة باستخدام كائن فئة SVGDocument.
  2. قم بإنشاء مثيل من فئة ImageRenderingOptions وحدد PNG كتنسيق إخراج.
  3. قم بإنشاء ImageDevice لكتابة المخرجات المُعالجة إلى ملف.
  4. قم بتحويل SVG إلى PNG باستخدام طريقة document.renderto(device) .

يوضح مثال الشيفرة التالي كيفية تحويل كود SVG من سلسلة نصية إلى صورة PNG باستخدام بايثون.

import aspose.svg as svg
from aspose.svg.rendering.image import ImageDevice, ImageFormat, ImageRenderingOptions

# SVG code as a string
svg_code = """
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200">
  <rect width="200" height="200" fill="lightblue"/>
  <circle cx="100" cy="100" r="80" fill="orange" stroke="black" stroke-width="2"/>
  <text x="100" y="110" text-anchor="middle" font-size="24" fill="white">SVG</text>
</svg>
"""

# 1. التحميل من السلسلة + URI الأساسي (استخدم "." إذا لم تكن تعتمد على الأصول الخارجية)
document = svg.SVGDocument(svg_code, ".")

# 2. اختر PNG كتنسيق للإخراج
options = ImageRenderingOptions()
options.format = ImageFormat.PNG

# 3. أنشئ جهازًا يكتب المخرجات المعروضة إلى ملف
device = ImageDevice(options, r"source_out.png")

# 4. تحويل SVG إلى PNG
document.render_to(device)
حول كود SVG إلى PNG باستخدام بايثون

Convert SVG Code to PNG using Python.

تحويل كود SVG من ملف إلى PNG في بايثون

إذا كان لديك بالفعل ملف SVG محفوظ على القرص، يمكنك تحويله مباشرة إلى PNG. هذا مفيد لتحويل القوالب، الرموز، أو الرسومات المتجهة المصدرة.

اتبع الخطوات أدناه لتحويل كود SVG من ملف إلى PNG:

  1. قم بتحميل ملف SVG موجود باستخدام كائن فئة SVGDocument.
  2. قم بإنشاء جهاز عرض صور بتنسيق PNG.
  3. Render and save the image.

مثال الشيفرة التالية يوضح كيفية تحويل كود SVG من ملف إلى صورة PNG باستخدام بايثون.

import aspose.svg as svg
from aspose.svg.rendering.image import ImageDevice, ImageFormat, ImageRenderingOptions

# Load SVG file
document = svg.SVGDocument("aspose-svg-logo.svg")

# اختر PNG كخيار للإخراج
options = ImageRenderingOptions()
options.format = ImageFormat.PNG

# تهيئة جهاز Rendering PNG
device = ImageDevice(options, "aspose-svg-logo.png")

# Render and save the output
document.render_to(device)
Convert SVG Code from File to PNG in Python

Convert SVG Code from File to PNG in Python.

تعديل حجم وجودة الإخراج

أحياناً تحتاج إلى التحكم في أبعاد الإخراج، DPI، أو مقياس PNG. يوفر Aspose.SVG خيارات مرنة لذلك.

اتبع الخطوات أدناه لتعديل حجم وجودة صورة الخرج:

  1. حدد خيارات العرض مع عرض مخصص، ارتفاع، أو DPI.
  2. مرر الخيارات أثناء إنشاء جهاز العرض.
  3. Render and save.

يظهر مثال الشيفرة التالي كيفية ضبط حجم وجودة الصورة الناتجة أثناء تحويل كود SVG إلى PNG:

import aspose.svg as svg
from aspose.svg.drawing import Resolution
from aspose.svg.rendering.image import ImageDevice, ImageFormat, ImageRenderingOptions

# Load SVG file
document = svg.SVGDocument("aspose-svg-logo.svg")

# اختر PNG كتنسيق للإخراج
options = ImageRenderingOptions()
options.format = ImageFormat.PNG

# تعيين خيارات العرض
options.page_setup.sizing.width = 600
options.page_setup.sizing.height = 400
options.horizontal_resolution = Resolution.from_dots_per_inch(96.0)
options.vertical_resolution = Resolution.from_dots_per_inch(96.0)

# تهيئة جهاز عرض PNG
device = ImageDevice(options, "aspose-svg-logo-resized.png")

# Render and save the output
document.render_to(device)

تحويل SVG إلى PNG في الذاكرة باستخدام بايثون

يمكنك عرض ملفات SVG بالكامل في الذاكرة، وهو ما يعد مثالياً لتطبيقات الويب أو خدمات السحابة. تتجنب هذه الطريقة إنشاء ملفات مؤقتة وهي مثالية لاستجابات واجهات البرمجة التطبيقات.

اتبع الخطوات أدناه لتحويل SVG إلى PNG في الذاكرة باستخدام بايثون:

  1. إنشاء وثيقة SVG من سلسلة.
  2. ترجم إلى تيار في الذاكرة.
  3. استخدم بايتات PNG مباشرة (مثلًا، ارجع عبر API).

الشفرة التالية توضح كيفية تحويل SVG إلى PNG في الذاكرة باستخدام بايثون:

import aspose.svg as svg
from aspose.svg.rendering.image import ImageDevice, ImageFormat
import io

svg_code = """
<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100">
  <rect width="100" height="100" fill="green"/>
</svg>
"""

# أنشئ مستند SVG من سلسلة النص.
document = svg.SVGDocument(svg_code, ".")

# اختر تنسيق PNG
opts = ImageRenderingOptions()
opts.format = ImageFormat.PNG

# قم بتقديمه إلى تدفق الذاكرة
memory_stream = io.BytesIO()
device = ImageDevice(opts, memory_stream)
document.render_to(device)

# Access PNG bytes
png_data = memory_stream.getvalue()
print(f"Generated PNG size: {len(png_data)} bytes")

Output:

Generated PNG size: 34732 bytes

احصل على رخصة مجانية

تعمل منتجات Aspose في وضع التقييم بشكل افتراضي، مما قد يضيف علامات مائية أو قيود. يمكنك طلب ترخيص مؤقت مجاني من Aspose Temporary License page.بمجرد تطبيقه، ستعمل جميع التحويلات بدون قيود.

تحويل SVG إلى PNG عبر الإنترنت مجانًا

إذا كنت بحاجة فقط إلى تحويل سريع بدون ترميز، جرب Free Online SVG to PNG Converter المدعوم من Aspose. يتم تشغيله مباشرة في متصفحك ويستخدم نفس محرك العرض عالي الجودة كما في واجهة برمجة التطبيقات بايثون.

Image

SVG إلى PNG: موارد مجانية

بجانب تحويل كود SVG إلى PNG، اتبع الموارد أدناه لتطوير مهاراتك. ستجد كل شيء بدءًا من الوثائق الواضحة وأدلة المطور العملية إلى الأدوات عبر الإنترنت التي يمكنك تجربتها على الفور. خذ وقتك، استكشف، واتقن Aspose.SVG بالوتيرة التي تناسبك دون أي تكلفة على الإطلاق.

شفرة SVG إلى PNG: الأسئلة الشائعة

Q1: هل يمكنني الاحتفاظ بالشفافية في ناتج PNG؟

نعم، Aspose.SVG يحتفظ بالشفافية بشكل افتراضي أثناء التحويل.

Q2: هل يعمل بدون أي أدوات خارجية؟

نعم. Aspose.SVG يقوم بتقديم SVGs داخليًا دون الاعتماد على المتصفحات أو Inkscape.

Q3: هل يمكنني تحميل SVG مباشرة من الذاكرة أو عنوان URL؟

نعم، يمكنك تهيئة SVGDocument من سلسلة نصية أو مسار ملف أو عنوان URL على الويب.

إنهاء الموضوع

في هذه المقالة، لقد رأيت للتو كيفية تحويل كود SVG وملفات SVG إلى PNG في Python. استخدمنا Aspose.SVG for Python عبر .NET للتعامل مع عملية التحويل من SVG إلى PNG. إنه يتعامل بشكل جيد مع النصوص والملفات والخطوط، تقريبًا كل ما تحتاجه. إذا كنت تقوم بإنشاء مصغرات، أو تصدير المخططات، أو توليد الرسوميات للتقارير، فإن هذه المكتبة تمنحك مرونة كاملة عندما يتعلق الأمر بعرض SVG. إنها خيار موثوق لأي شخص يحتاج بانتظام إلى تحويل كود SVG إلى صور PNG عالية الجودة، كل ذلك ضمن Python.

هل لديك سؤال أو واجهت شيئًا معقدًا؟ لا تقلق! فريقنا سعيد بمساعدتك! يمكنك دائمًا الوصول إلينا في أي وقت على منتدى الدعم المجاني لـ Aspose.SVG free support forum والحصول على إرشادات مباشرة من الخبراء.

شاهد أيضا