ইমেজম্যাগিকের সাহায্যে কীভাবে কোনও এসভিজিকে পিএনজিতে রূপান্তর করবেন?


388

আমার কাছে একটি এসভিজি ফাইল রয়েছে যার সংজ্ঞায়িত আকার 16x16 রয়েছে। আমি যখন ইমেজম্যাগিকের রূপান্তর প্রোগ্রামটি এটি একটি পিএনজিতে রূপান্তর করতে ব্যবহার করি, তখন আমি একটি 16x16 পিক্সেল পিএনজি পাই যা খুব ছোট is

convert test.svg test.png

আমার আউটপুট পিএনজি এর পিক্সেল আকার নির্দিষ্ট করতে হবে। -sizeপরামিতি উপেক্ষা করা বলে মনে হচ্ছে, -scaleপরামিতি পিএনজি রূপান্তরিত হওয়ার পরে এটি পিএনজি স্কেল করে sc -densityপ্যারামিটারটি ব্যবহার করে এখন পর্যন্ত সেরা ফলাফলটি পেয়েছি :

convert -density 1200 test.svg test.png

তবে আমি সন্তুষ্ট নই, কারণ আমি ঘনত্বের মান গণনা করার জন্য গণিত না করে পিক্সেলগুলিতে আউটপুট আকার নির্দিষ্ট করতে চাই। সুতরাং আমি এই জাতীয় কিছু করতে চাই:

convert -setTheOutputSizeOfThePng 1024x1024 test.svg test.png

তাহলে আমার এখানে যে ম্যাজিক প্যারামিটারটি ব্যবহার করতে হবে তা কী?


6
যেমন -size 1024x1024ঠিকঠাক কাজ করছে, আপনার চিত্রম্যাগিক সংস্করণটি কী?
দেজন মারজানোভিচ


2
করে ImageMagick-6.9.0-Q16। রূপান্তর -resize 1024x1024 foo.svg foo.png ভাল কাজ করে।
জিচাও

11
@ জিচাও -resizeকেবলমাত্র খারাপ মানের ফলাফল সহ রূপান্তরিত চিত্রটি প্রসারিত করেছে।
এলিস্ট

5
convert -size 1024x1024 test.svg test.pngইমেজম্যাগিক 7.0.7-0 Q16 (উইন্ডোজের চকোলেটী রেপোতে বর্তমান সংস্করণ) দিয়ে দুর্দান্ত কাজ করে। কেবল -sizeইনপুট ফাইলনামের আগে উপস্থিত হয়েছে তা নিশ্চিত করুন, অন্যথায় একটি অস্পষ্ট ফলাফল দেওয়ার জন্য একটি 16x16 টি চিত্র আপসেল করা হবে।
ফুতাল

উত্তর:


502

আমি এই উদাহরণে ইমেজম্যাগিকের কাছ থেকে ভাল ফলাফল পেতে সক্ষম হইনি, তবে লিনাক্স এবং উইন্ডোজে ইনস্কেপ এটির একটি দুর্দান্ত কাজ করে:

inkscape -z -w 1024 -h 1024 input.svg -e output.png

সম্পাদনা (মে 2020): ইনস্কেপ 1.0 ব্যবহারকারীর, দয়া করে নোট করুন যে কমান্ড লাইনের যুক্তিগুলি পরিবর্তিত হয়েছে:

inkscape -w 1024 -h 1024 input.svg --export-filename output.png

এই কমান্ডটি ব্যবহার করে 200x200 পিএনজিতে 16x16 এসভিজি স্কেল করার ফলাফল এখানে রয়েছে:

এখানে চিত্র বর্ণনা লিখুন

এখানে চিত্র বর্ণনা লিখুন

কেবলমাত্র রেফারেন্সের জন্য, আমার ইনস্কেপ সংস্করণ (উবুন্টু 12.04 এ) হ'ল:

Inkscape 0.48.3.1 r9886 (Mar 29 2012)

এবং উইন্ডোজ 7 এ, এটি হল:

Inkscape 0.48.4 r9939 (Dec 17 2012)

15
ইমেজম্যাগিকের হিসাবে +1 এসভিজি ইঞ্জিনে সমস্যা আছে বলে মনে হচ্ছে। বেশিরভাগ ক্ষেত্রে আমি এর সাথে সঠিক ফলাফল পেতে সক্ষম হইনি। ইনস্কেপ, ওটিওএইচ পুরোপুরি সূক্ষ্মভাবে কাজ করে।
গ্লুটোনিমেট

13
আমি মনে করি লিনাক্সের পরে ওএসএসের মধ্যে ইঙ্কস্কেপ একক সবচেয়ে চিত্তাকর্ষক উদাহরণ। ভকভগক!
কিম

8
ওএসএক্সেও দুর্দান্ত কাজ করে।
জোনাস গ্রানভিক

12
ওএসএক্স-এ, এক্স 11-এর জন্য /Applications/Inkscape.app/Contents/Resources/bin/inkscape -z -e test.png -w 1024 -h 1024 test.svg
ইনস্কেপ

11
@ রর্ড ইমেজম্যাগিকের সাথে পটভূমি স্বচ্ছ রাখতে -background noneকমান্ড লাইন বিকল্পটি ব্যবহার করুন ।
জন

142

Svgexport চেষ্টা করুন :

svgexport input.svg output.png 64x
svgexport input.svg output.png 1024:1024

এসভিজিএক্সপোর্ট একটি সহজ ক্রস-প্ল্যাটফর্ম কমান্ড লাইন সরঞ্জাম যা আমি এসপিজি ফাইলগুলি জেপিজি এবং পিএনজি রফতানির জন্য তৈরি করেছি, আরও বিকল্পের জন্য এখানে দেখুন। Svgexport ইনস্টল করতে এনপিএম ইনস্টল করুন , তারপরে চালান:

npm install svgexport -g

সম্পাদনা করুন: আপনি যদি লাইব্রেরিতে কোনও সমস্যা খুঁজে পান তবে দয়া করে এটি গিটহাবে জমা দিন , ধন্যবাদ!


4
svgexport আমার জন্য দুর্দান্ত কাজ করেছে। আউটপুট ইমেজম্যাগিকের চেয়ে অনেক বেশি ঘনিষ্ঠভাবে ব্রাউজারে রেন্ডার করে matches
t9mike

5
svgexport গুণমান সত্যিই যে উচ্চ। এখন এটি আমার প্রিয় হাতিয়ার হয়ে উঠেছে, ধন্যবাদ শাকিব! :)
আলেসিও পেরিলোসো

1
এটি আমার পক্ষেও ভাল কাজ করেছে। GUI সরঞ্জামে ম্যানুয়ালি করার তুলনায় রিয়েল টাইম সেভার। এসভিজি ভালভাবে পরিচালনা করে এমন সস্তা সীমাতে ম্যাকের জন্য একটি জিইউআই অ্যাপ্লিকেশন খুঁজে পাওয়া বেশ কঠিন
এরিক এনজিম

4
দুর্দান্ত কাজ করে তবে একটি বিশাল চিত্র তৈরি করে। অপটিপং ব্যবহার করে, আমি আমার পাঠ্য লোগোটি 3 মেগাবাইট থেকে 20 কিলোবাইটে কমপ্রেস করতে সক্ষম হয়েছি।
মাইকে

2
আকারের উপর নির্ভর করে evgexport বিশাল আকারের পিএনজি ফাইল তৈরি করে। Svg2png এর প্রস্তাব দিন যা রফতানির জন্য ফ্যান্টমজেএস ব্যবহার করে তবে অনেক ছোট চিত্র তৈরি করে।
হারুন_হো

112

এটি নিখুঁত নয় তবে এটি কাজটি করে।

convert -density 1200 -resize 200x200 source.svg target.png

মূলত এটি যথেষ্ট পরিমাণে ডিপিআইকে বাড়িয়ে তোলে (কেবলমাত্র একটি শিক্ষিত / নিরাপদ অনুমান ব্যবহার করুন) পর্যাপ্ত মানের সাথে পুনরায় আকার দেওয়া হয়। আমি এর সঠিক সমাধান খুঁজতে চেষ্টা করছিলাম কিন্তু কিছুক্ষণ পরে সিদ্ধান্ত নিয়েছি এটি আমার বর্তমান প্রয়োজনের জন্য যথেষ্ট ভাল।

দ্রষ্টব্য: 200x200 ব্যবহার করুন! প্রদত্ত রেজোলিউশনকে বাধ্য করার জন্য


4
আমার ক্ষেত্রে অস্বচ্ছতা এবং ছায়া হারিয়েছে।
জিইনিয়্যং

2
আমার কাছে জটিল এসজিজি নেই তাই এটি আমার জন্য কাজ করেছিল। -resize 200%কাজ করে না এবং আমাকে পিক্সেলগুলিতে আকার নির্দিষ্ট করতে হয়েছিল।
jozxyqk

18
@ জিইনিয়্যং ইমেজম্যাগিকের সাথে পটভূমি স্বচ্ছ রাখতে -background noneকমান্ড লাইন বিকল্পটি ব্যবহার করুন । চিত্র অনুপাত রাখতে, আপনি -resize 200প্রস্থ বা -resize x200উচ্চতার মতো মাত্র একটি মাত্রা নির্দিষ্ট করতে পারেন । দেখুন: imagemagick.org/script/command-line-processing.php#geometry সম্পূর্ণ জন্য করে ImageMagick জ্যামিতি অপশন।
জন

আমার জন্য কাজ করে না। ফলাফল সব অস্পষ্ট।
mbonnin

(এটি লিনাক্সের ক্ষেত্রে প্রযোজ্য, উইন্ডোজগুলিতে প্রযোজ্য হতে পারে) আপনি যদি আইএমটি চালু করে থাকেন তবে মনে হয় আইএম নিজেই একটি ইন্টারমিডিয়েট ইপিএস ফাইল তৈরি করতে ইনস্কেপ ব্যবহার করেন। সুতরাং আমি @ 808 সাউন্ড
উত্তর-ব্র্যাডলি

55

আপনি যদি ম্যাকোএস এক্সে রয়েছেন এবং চিত্রগ্রাহক রূপান্তর করতে সমস্যা বোধ করেন তবে আপনি এটি আরএসভিজি লাইব দিয়ে পুনরায় ইনস্টল করার চেষ্টা করতে পারেন। হোম ব্রু ব্যবহার:

brew remove imagemagick
brew install imagemagick --with-librsvg

এটি সঠিকভাবে প্রতিনিধিত্ব করছে তা যাচাই করুন:

$ convert -version
Version: ImageMagick 6.8.9-8 Q16 x86_64 2014-12-17 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2014 ImageMagick Studio LLC
Features: DPC Modules
Delegates: bzlib cairo fontconfig freetype jng jpeg lcms ltdl lzma png rsvg tiff xml zlib

এটি প্রদর্শিত হবে rsvg


আমার পক্ষে কাজ করেনি। বিশেষত আমি দৌড়েছি convert ic_comment_48px.svg -size 30x30 ic_comment_30px.pngএবং আউটপুট চিত্রটি 48 x 48 হয়। নিশ্চিত হয়ে নিন যে আপনার ব্যাখ্যা অনুসারে ইমেজম্যাগিক আরএসভিগিকে প্রতিনিধিত্ব করছে।
শেন ক্রেইটন-ইয়ং

1
আমার জন্য নিখুঁতভাবে কাজ করেছেন - ডিফল্ট convertsvg কে png এ রূপান্তরিত করেছিল, তবে ফলাফল হতাশ ছিল; পুনরায় ইনস্টল করার পরে, তারা নিখুঁত। এছাড়াও, রূপান্তর উল্লেখযোগ্যভাবে দ্রুত is
এসএসসি

1
এটি আমাকে ম্যাক ওএসএক্সে কাজ করেছে। আমি নতুন রূপান্তরটি দ্রুত খুঁজে পাই না, তবে আরও অনেক নির্ভুল। আমি সমস্ত ম্যাক ওএসএক্স ব্যবহারকারীদের এটির চেষ্টা করার জন্য সুপারিশ করছি।
হ্যালো ওয়ার্ল্ড

1
এটি হ'ল গ্রহণযোগ্য উত্তর হওয়া উচিত। আপনাকে ধন্যবাদ,
মনোমুগ্ধকর

8
মোজেভে আমি পাইinvalid option: --with-librsvg
zaitsman

39

এসভিজি ইউনিট px(উদাঃ সেমি) না থাকলে ইনস্কেপ কাজ করবে বলে মনে হয় না । আমি একটি ফাঁকা চিত্র পেয়েছি। হতে পারে, ডিপিআই পাকিয়ে এটি স্থির করা যেতে পারে তবে এটি খুব ঝামেলার ছিল।

Svgexport একটি নোড.জেএস প্রোগ্রাম এবং তাই সাধারণভাবে কার্যকর হয় না।

চিত্রগ্রাহকের রূপান্তরটি এর সাথে ঠিক কাজ করে:

 ~$ convert -background none -size 1024x1024 infile.svg outfile.png

আপনি যদি ব্যবহার -resize তবে চিত্রটি অস্পষ্ট এবং ফাইলটি অনেক বড়।

সর্বোত্তম

~$ rsvg  -w 1024 -h 1024 infile.svg  outfile.png

এটি দ্রুততম, স্বল্পতম নির্ভরশীলতা রয়েছে এবং রূপান্তর চেয়ে আউটপুট প্রায় 30% ছোট। এটি পেতে librsvg2-bin ইনস্টল করুন। কোনও ম্যান পেজ বলে মনে হচ্ছে না তবে আপনি টাইপ করতে পারেন:

~$ rsvg --help

কিছু সহায়তা পেতে। সরল ভাল।


2
এটি সহজেই সেরা উত্তর (আমার জানা নেই কেন বিশটি উত্তর একই চিত্রের প্রতিক্রিয়া দেয়); এটি রঙ এবং ছায়াগুলি সংরক্ষণ করে এবং কিছুতেই ম্যাঙ্গাল করে না। যাইহোক, চিত্রম্যাগিক পুনরায় আকারের আচরণটি (বিশেষত, ডাব্লুএক্সএইচ মানে স্কেল চিত্রটি সেই আকারের একটি বাক্সে ফিট করার জন্য, দিক অনুপাত সংরক্ষণ করে), -aপরামিতিটি আরএসভিজি ব্যবহার করা উচিত।
মাহমুদ আল-কুদসি

1
এটি আমার চিত্রগুলি, সমস্ত ধরণের অদ্ভুত নিদর্শনগুলিকে মঙ্গল করেছে। ইনস্কেপ আরও ভাল কাজ করেছে।
পাশা

1
সতর্কতা অবলম্বন করুন, brew install rsvg
ওএসএক্সে

4
এফওয়াইআই, বর্তমান ইনস্টল কমান্ডটি হ'ল brew install librsvgএবং রূপান্তর আদেশটি rsvg-convert
ওয়াল্ডরিয়াস

rsvg-convertজটিল এস.ভি.এস. কে পিএনজে রূপান্তর করার সময় আমি সেরা এবং সর্বাধিক ধারাবাহিক ফলাফল দেওয়ার জন্য লিবারসভিগ (বা আর্কের ক্ষেত্রে) পেয়েছি। optipngআউটপুট ফাইলের আকার হ্রাস করতে অনুসরণ করুন ।
ম্যাকটেল

18

জোসে আলবান এর উত্তরের পদক্ষেপগুলি অনুসরণ করার পরে , আমি নিম্নলিখিত কমান্ডটি ব্যবহার করে ইমেজম্যাগিককে ঠিক কাজ করতে সক্ষম হয়েছি:

convert -density 1536 -background none -resize 100x100 input.svg output-100.png

1536 নম্বরটি ঘনত্বের একটি বল পার্কের অনুমান থেকে আসে, আরও তথ্যের জন্য এই উত্তরটি দেখুন।


15

চিত্রটি পুনরুদ্ধার করার জন্য, বিকল্পটি -densityব্যবহার করা উচিত। আমি যতদূর জানি স্ট্যান্ডার্ড ঘনত্ব 72 এবং আকার 1: 1 এর মানচিত্র। আপনি যদি আউটপুট পিএনজিটি মূল এসভিজির চেয়ে দ্বিগুণ হতে চান তবে ঘনত্বটি 72 * 2 = 144 এ সেট করুন:

convert -density 144 source.svg target.png

নোট করুন যে রূপান্তর বিকল্পগুলি ইনপুট ফাইলের আগে থাকতে হবে । অর্থাৎ convert source.svg -density 144 target.pngচিত্রটি পুনরুদ্ধার করবে না।
স্কিপি লে গ্র্যান্ড গৌরু

আসলে স্ট্যান্ডার্ড ঘনত্বটি 90 বলে মনে হচ্ছে So সুতরাং এটি হবেconvert -density 180 source.svg target.png
অ্যাডিয়াস

7

আপনি কেন ইনসকেপ কমান্ড লাইনে চেষ্টা করবেন না, এই দির সমস্ত এস.জি.জি. কে পিএনজে রূপান্তর করার জন্য এটি আমার ব্যাট ফাইল is

%% X IN (* .svg) এর জন্য ডি সি: \ কালি \ অ্যাপ্লিকেশন \ ইনস্কেপ c inkscape.exe %% x -z --export-dpi = 500 - রফতানির ক্ষেত্র-অঙ্কন --export-png = "% % ~ nx.png "


4

আমি এই পোস্টে এসেছি - তবে আমি কেবল কোনও পরামিতি ব্যবহার না করে ব্যাচ এবং দ্রুত (রূপান্তর করতে চেয়েছি বিভিন্ন আকারের বিভিন্ন ফাইলের কারণে) রূপান্তর করতে চেয়েছিলাম।

rsvg drawing.svg drawing.png

আমার পক্ষে প্রয়োজনীয় লেখাগুলি সম্ভবত মূল লেখকের চেয়ে কিছুটা সহজ ছিল। (এমএস পাওয়ারপয়েন্টে এসভিজি ব্যবহার করতে চেয়েছিলেন, তবে এটি অনুমতি দেয় না)


1
রেফারেন্সের জন্য, ম্যাকোস-এ এটি ইনস্টল করা হয় brew install librsvgএবং রূপান্তর কমান্ডটি হয় rsvg-convert
ওয়ালডিরিয়াস

উবুতনিতে এটি আরএসভিজি-রূপান্তরকারীও রয়েছে, প্যাকেজটি হ'ল লিব্রেসভিজি ২-বিন এবং আউটপুট -o
অঙ্কন

4

ইমেজম্যাগিকের ক্ষেত্রে, যদি কেউ তার নিজস্ব অভ্যন্তরীণ এমএসভিজি / এক্সএমএল রেন্ডারের চেয়ে ইমেজমেগের সাথে ইনস্কেপ বা আরএসভিজি ব্যবহার করে তবে একটি আরও ভাল এসভিজি রেন্ডারিং পেতে পারে। আরএসভিজি এমন একটি প্রতিনিধি যা ইমেজম্যাগিকের সাথে ইনস্টল করা দরকার। যদি সিস্টেমে ইনস্কেপ ইনস্টল করা থাকে তবে ইমেজম্যাগিক এটি স্বয়ংক্রিয়ভাবে ব্যবহার করবে। আমি নীচে ইমেজম্যাগিতে ইনস্কেপ ব্যবহার করি।

এমন কোনও "যাদু" প্যারামিটার নেই যা আপনি যা চান তা করবে।

তবে, আউটপুট রেন্ডার করার জন্য যে কেউ সঠিক ঘনত্বটি খুব সহজেই গণনা করতে পারে।

96 এর ডিফল্ট ঘনত্বে রেন্ডার করার সময় এখানে একটি ছোট 50x50 বোতাম রয়েছে:

convert button.svg button1.png


এখানে চিত্র বর্ণনা লিখুন

ধরুন আমরা আউটপুটটি 500 হতে চাই 96 সুতরাং আপনি প্রয়োজনীয় ঘনত্বের মাত্রা এবং ঘনত্বের অনুপাতের অনুপাতে গণনা করতে পারেন।

512/50 = X/96
X = 96*512/50 = 983


convert -density 983 button.svg button2.png


এখানে চিত্র বর্ণনা লিখুন

ইমেজম্যাগিক 7 এ আপনি নিম্নরূপে গণনাটি করতে পারেন:

magick -density "%[fx:96*512/50]" button.svg button3.png

or

in_size=50
in_density=96
out_size=512

magick -density "%[fx:$in_density*$out_size/$in_size]" button.svg button3.png

ম্যাজিক ডিএসএলে সমীকরণটি খুব সহায়ক ছিল!
সাইরফ

2

একটি জিনিস যা আমাকে কিছুটা বিট করেছিল -densityতারপরে ইনপুট ফাইলের নামটি সেট করে দিচ্ছিল। কাজ হয়নি। রূপান্তর (প্রথম যে কোনও কিছুর আগে) এটিকে প্রথম বিকল্পে সরানো এটিকে কাজ করে তোলে (আমার জন্য, ওয়াইএমএমভি, ইত্যাদি)।


2

সাধারণ এসভিজি থেকে পিএনজি রূপান্তর করার জন্য আমি কায়ারস্ভিগ ( https://cairosvg.org/ ) ইমেজম্যাগিকের চেয়ে আরও ভাল পারফরম্যান্স পেয়েছি । আপনার ডিরেক্টরিতে সমস্ত এসভিজি ফাইল ইনস্টল এবং চলমান জন্য পদক্ষেপ।

pip3 install cairosvg

ডিরেক্টরিতে একটি পাইথন শেলটি খুলুন যা আপনার .svg ফাইল রয়েছে এবং রান করে:

import os

for file in os.listdir('.'):
    name = file.split('.svg')[0]
    cairosvg.svg2png(url=name+'.svg',write_to=name+'.png') 

এটি আপনার মূল .svg ফাইলগুলি ওভাররাইট না করে তা নিশ্চিত করবে, তবে একই নামটি রাখবে। এরপরে আপনি আপনার সমস্ত .png ফাইলগুলি অন্য ডিরেক্টরিতে সরিয়ে নিতে পারেন:

$ mv *.png [new directory]

উইন্ডোজ 10-এ আমার জন্য ক্র্যাশ হয়েছে: কায়রো ফাইল হিসাবে কায়ারোফি আমদানি করুন "সি: \ প্রোগ্রাম ফাইলগুলি (x86) y পাইথন 35-32 \ lib \ সাইট-প্যাকেজগুলি air কায়রোকিফাই_দি_পি ", লাইন 39, <মডুল> কায়রো = dlopen (ffi , 'কায়রো', 'কায়রো -২', 'কায়রো-গবজেক্ট -২', 'কায়রো.এস.২.') ফাইল "সি: \ প্রোগ্রাম ফাইল (x86) y পাইথন ৩৩-৩২ \ lib \ সাইট-প্যাকেজ oc কায়রোফফি_আর_ .py ", লাইন 36, dlopen উত্থাপনে OSError (" dlopen () একটি লাইব্রেরি লোড করতে ব্যর্থ:% s "% '/'। জোইন (নাম)) ওএসআরর: dlopen () একটি লাইব্রেরি লোড করতে ব্যর্থ হয়েছে: কায়রো / কায়রো- 2 / কায়রো-গবজেক্ট -২ / কায়রো.এস.২.২০১৩
পিট লোম্যাক্স

ভাল, cairosvgউবুন্টু -19.04 এ আমার জন্য কাজটি করেছে।
এফএইচজিডি

2

Librsvg ছাড়া, আপনি একটি কালো png / jpeg চিত্র পেতে পারেন। আমাদের ইমেজম্যাগিকের সাথে এসভিজি ফাইল ইনস্টল librsvgকরতে convertহবে।

উবুন্টু

 sudo apt-get install imagemagick librsvg
 convert -density 1200 test.svg test.png

ম্যাক অপারেটিং সিস্টেম

 brew install imagemagick librsvg
 convert -density 1200 test.svg test.png

আমার কাছে এই গ্রন্থাগারটি ইনস্টল করা নেই এবং আমি কালো চিত্রও পাই না।
অ্যারন ফ্র্যাঙ্ক

1

আমি আমার উদ্দেশ্যযুক্ত আউটপুট আকারের সাথে মেলে ট্যাগের বৈশিষ্ট্য widthএবং heightবৈশিষ্ট্যগুলি <svg>পরিবর্তন করে ইমেজম্যাগিক ব্যবহার করে এটিকে রূপান্তর করার মাধ্যমে সমস্যার সমাধান করেছি । একটি যাদুমন্ত্র মত কাজ করে.

এখানে আমার পাইথন কোডটি, এমন একটি ফাংশন যা জেপিজি ফাইলটির বিষয়বস্তু ফিরিয়ে দেবে:

import gzip, re, os
from ynlib.files import ReadFromFile, WriteToFile
from ynlib.system import Execute
from xml.dom.minidom import parse, parseString


def SVGToJPGInMemory(svgPath, newWidth, backgroundColor):

    tempPath = os.path.join(self.rootFolder, 'data')
    fileNameRoot = 'temp_' + str(image.getID())

    if svgPath.lower().endswith('svgz'):
        svg = gzip.open(svgPath, 'rb').read()
    else:
        svg = ReadFromFile(svgPath)

    xmldoc = parseString(svg)

    width = float(xmldoc.getElementsByTagName("svg")[0].attributes['width'].value.split('px')[0])
    height = float(xmldoc.getElementsByTagName("svg")[0].attributes['height'].value.split('px')[0])

    newHeight = int(newWidth / width * height) 

    xmldoc.getElementsByTagName("svg")[0].attributes['width'].value = '%spx' % newWidth
    xmldoc.getElementsByTagName("svg")[0].attributes['height'].value = '%spx' % newHeight

    WriteToFile(os.path.join(tempPath, fileNameRoot + '.svg'), xmldoc.toxml())
    Execute('convert -background "%s" %s %s' % (backgroundColor, os.path.join(tempPath, fileNameRoot + '.svg'), os.path.join(tempPath, fileNameRoot + '.jpg')))

    jpg = open(os.path.join(tempPath, fileNameRoot + '.jpg'), 'rb').read()

    os.remove(os.path.join(tempPath, fileNameRoot + '.jpg'))
    os.remove(os.path.join(tempPath, fileNameRoot + '.svg'))

    return jpg

2
আপনি কম্পিউটারের
উত্সাহিত

1

@ 808 সাউন্ডের শীর্ষের উত্তরটি আমার পক্ষে কাজ করে না। আমি আকার পরিবর্তন করতে চেয়েছিলেন কেনে.এনএল ইউআই প্যাক

এবং পেয়েছিলাম কেনে ইউআই প্যাক গণ্ডগোল করেছে

সুতরাং পরিবর্তে আমি ইঙ্কস্পেস খোলা, তারপর গিয়েছিলাম File, Export as PNG fileএবং একটি GUI বাক্স popped যে আমাকে সঠিক মাত্রা আমার প্রয়োজন সেট করার মঞ্জুরি দেওয়া।

সংস্করণ চালু Ubuntu 16.04 Linux: Inkscape 0.91 (September 2016)

(এই চিত্রটি কেনে.এনএল এর সম্পদ প্যাকগুলি থেকে এসেছে )


1

ম্যাকোএসে ব্রু ব্যবহার করে, লিবারসভিগ সরাসরি ব্যবহার করে

brew install librsvg
rsvg-convert test.svg -o test.png

অনেক বিকল্পের মাধ্যমে উপলব্ধ rsvg-convert --help


0

ইনজস্কেপ ০.০ সহ লিনাক্সে এসভিজি থেকে পিএনজি রূপান্তর করতে হবে

inkscape -w 1024 -h 1024 input.svg --export-file output.png

না

inkscape -w 1024 -h 1024 input.svg --export-filename output.png
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.