কমান্ড লাইনের মাধ্যমে আমি কীভাবে একটি এসভিজি স্কেল করতে পারি?


17

একটি এসভিজির এই বৈশিষ্ট্যগুলি রয়েছে যা এটির আকার নির্ধারণ করে:

width="146.91299pt"
height="78.079002pt"
viewBox="0 0 146.913 78.079"

আমি 400ptঅনুপাতের অনুপাতটি ভঙ্গ না করে একটি প্রদত্ত এসভিজিকে কমান্ড লাইনের সাহায্যে স্কেল করতে চাই । এর অর্থ, উপরের তিনটি মানকে সঠিকভাবে এবং নীচের এসভিজি কোডের সমস্ত পয়েন্ট পরিবর্তন করতে হবে । আমি কেবল ক্যানভাসের আকারটিই পরিবর্তন করতে চাই না, তবে পুরো এসভিজি চিত্রের আকার। এবং আমি জিইআইআই দিয়ে / হাতে হাতে এটি করতে চাই না, তবে আমি এটি সিএলআইয়ের সাথে করতে চাই।

কীভাবে আমি একটি প্রদত্ত প্রস্থে কমান্ড লাইন দ্বারা কোনও স্বয়ংক্রিয়ভাবে একটি এসভিজি স্কেল করতে পারি?

কারণ: চিত্রটি খুব ছোট হলে উইকিপিডিয়াটির পূর্বরূপটি খারাপ দেখাচ্ছে। এই চিত্রটি উদাহরণ হিসাবে দেখুন ।

আমি কীভাবে ইনস্কেপ-জিইউআই দিয়ে এই কাজটি করব

  1. Shift + Ctrl + M (রূপান্তর)
  2. স্কেল ("স্কেল আনুপাতিকভাবে" পরীক্ষা করুন)
  3. প্রস্থ লিখুন
  4. Shift + Ctrl + D (নথির বৈশিষ্ট্য)
  5. নির্বাচন পৃষ্ঠাতে ফিট করুন

এখন আমি এটি করতে একটি স্বয়ংক্রিয় সিএলআই-উপায় চাই।

উপায় দ্বারা, inkscape কেবল প্রয়োগ করা হয়েছে

<g transform="matrix(1.6838397,0,0,1.6838397,-3.3543029,-3.3542794)"
 id="surface0">

পুরো ইমেজ।


আপনি কোন ওএস ব্যবহার করবেন?
টেরডন

উবুন্টু 10.04.4 এলটিএস (আমি এটি আপডেট করতে চলেছি ...)
মার্টিন থোমা

এসভিজি ফাইলগুলি কেবল পাঠ্য ফাইল। আপনার কাছে সেই ফাইলে এডিট এবং পরিবর্তন করতে সক্ষম হতে পারে width, heightএবং viewBoxভালো কিছু করার জন্য মান width="100%" height="100%" viewBox="0 0 400 212.58569"
মার্টিনো

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

হ্যাঁ, আমি জানি আপনি এটি করার জন্য একটি স্বয়ংক্রিয় উপায় চেয়েছিলেন, তবে ভেবেছিলেন যে আপনি যদি টেক্সট অনুসারে কী পরিবর্তন করতে পারেন তা যদি বুঝতে পারেন তবে উপলব্ধ পাঠ্য-সম্পাদনা সরঞ্জামগুলির যে কোনও একটি ব্যবহার করে আপনি এটি স্বয়ংক্রিয় করতে পারবেন (যেমন যেমন sedএ @ terdon এর উত্তর)। আপনি যে সমস্যাটি চালাতে পারেন তা হ'ল আপনি যে একই জিনিসটি করতে চান অন্য কোনও .svg ফাইলের সাথে মানগুলি পৃথক হতে পারে।
মার্টিনিউ

উত্তর:


15

rsvg-convertlibrsvg2-binপ্যাকেজ থেকে svg এর আকার পরিবর্তন করতে পারে।

সম্পূর্ণ নির্দেশাবলীর জন্য এই উত্তরটি দেখুন ।


4
rsvg-convert -a -w 500 -f svg Vector-triangle-inequality.svg -o Result.svgকাজ করছে. তবে আরএসভিজি-রূপান্তরটি কেবল পুনরায় আকার দেওয়ার চেয়ে আরও কিছু করতে পারে বলে মনে হচ্ছে।
মার্টিন থোমা

2
@ মুস, তবে, যে উত্তরটিতে উল্লিখিত হয়েছে, আরএসভিজি-রূপান্তর পিক্সেল নয়, পয়েন্ট ব্যবহার করে। আপনি যদি ভাগ্যবান হন তবে আপনি কেবল নিজের পছন্দসই আকারটি 1.25 দ্বারা ভাগ করতে পারেন। তবে, আপনি যদি 24px (পয়েন্টগুলিতে 19.2) এর মতো কিছু চান তবে আপনার ভাগ্য খুব খারাপ, যেহেতু এটি প্রস্থ বা উচ্চতা হিসাবে কোনও অ-পূর্ণসংখ্যা স্থাপন করতে রাজি নয় (এসভিজি এটির অনুমতি দেয় কিনা তা নিশ্চিত নয়)।
ম্যাথু ফ্ল্যাশেন

@ মার্টিন থোমা হ্যাঁ, সত্যিই। এসভিজি আউটপুট ফাইলটি মূল আকার থেকে প্রায় দ্বিগুণ। আমি ভাবছি কেন? পড়া rsvg-convert --helpকোনও ক্লু সরবরাহ করে না।
সার্জ Stroobandt

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

1
এই সরঞ্জামটি কেবল জামটিকে প্রতিটি উপাদানে রূপান্তরিত করে বলে মনে হচ্ছে এবং আসল আকারগুলি আসলে পরিবর্তন করে না।
rtaft

3

আপনি যদি কেবল একটি চিত্র পরিবর্তন করতে চান তবে এটি একটি পাঠ্য সম্পাদক (উদাহরণস্বরূপ ইমাস) খুলুন এবং প্রস্থের এন্ট্রি পরিবর্তন করুন।

গীকিয়ারের জন্য, সি এল এলই কেবল যোগাযোগ করুন, সেড ব্যবহার করুন:

$ sed 's/width=\"146.91299pt\"/width=\"400pt\"/' orig.svg > new.svg

এটি চিত্রটির স্কেল করবে না তবে কেবল তার প্রস্থ নির্ধারণ করবে।


একটি আরও ভাল উপায়, সম্ভবত, তবে অবশ্যই অনেকগুলি চিত্রের জন্য ব্যাচ মোডে চালানো যেতে পারে এমন একটি হ'ল কমান্ড লাইন থেকে ইনস্কেপ ব্যবহার করা:

$ inkscape -z -e out.png -w 400 -h 400 in.svg

অনেকগুলি ফাইলের জন্য (ধরে নিচ্ছেন যে আপনি তাদের সকলের একই প্রস্থ দেখতে চান), নিম্নলিখিতটি করুন। এটিতে পিএনজি রূপান্তর প্রয়োজন এবং ধরে নেওয়া যায় যে আপনার ফাইলের নামগুলিতে কোনও স্থান নেই:

$ for n in $(ls *svg | sed 's/.svg//'); do inkscape -z -e $n.png -w 400 -h 400 $n.svg; done

ইমেজম্যাগিকের রূপান্তরটি আমার প্রথম পছন্দ ছিল তবে এসভিজেএস স্কেল করার সময় এটি ভাঙ্গা মনে হয়।


7
আপনার ইনস্কেপ-কমান্ডের ফলাফল একটি পিএনজি, তবে আমি একটি এসভিজি চাই। আপনার এসভিজি কমান্ডটি কেবল ক্যানভাসের আকার পরিবর্তন করে তবে চিত্রটির আকার নয়। আপনি কেবল একটি পাঠ্য সম্পাদক ব্যবহার করতে পারবেন না এবং কেবলমাত্র আমি উপরে উল্লিখিত মান পরিবর্তন করতে পারি। আমি মনে করি আমাকে প্রশ্নটি পরিষ্কার করতে হবে।
মার্টিন থোমা

আপনার একই ট্যাগটি যুক্ত করতে হবে: ... "> <g রূপান্তর =" স্কেল (2) "> <পথ .... /> </g> </svg> একই ফ্যাক্টরটি সহ চিত্রটি স্কেল করতে
স্টফকে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.