কমান্ড লাইনে তাদের ক্যানভাসে এসভিজি অঙ্কনগুলি কীভাবে ফিট করা যায়?


13

.svgকমান্ড লাইনে ফাইল ক্রপ করা সহজ: $ inkscape --verb=FitCanvasToDrawing --verb=FileSave --verb=FileClose *.svg

আমার বিপরীত কাজ করা দরকার। আমি 64 x 64অঙ্কনটিকে পয়েন্ট ক্যানভাসে ফিট করতে চাই (ইতিমধ্যে সমস্ত .svgফাইলে সেট করা আছে )। দুর্ভাগ্যক্রমে ইনস্কেপ কোনও FitDrawingToCanvasআদেশ দেয় না । তদতিরিক্ত, ফিটিং অঙ্কনের দিক অনুপাত রাখা উচিত।

যদি এটি গুরুত্বপূর্ণ হয়: আমি উবুন্টু রেরিং ব্যবহার করছি।


1
কাজটি করার জন্য ক্যানভাসের অঙ্কন স্থির করার পরে পুনরায় আকার দেবেন? গ্রাফিকডিজাইন.স্ট্যাক্কেঞ্জেনওয়েজ
তাককাত

দুটি প্রশ্ন: (1) প্রতিটি উদাহরণে ক্যানভাসের আকার ইতিমধ্যে সেট করা আছে, তবে অঙ্কনগুলি ক্যানভাসের চেয়ে বড়; বা আপনি কোনও এসভিজি অঙ্কন অন্য কোনও এসভিজি নথিতে সন্নিবেশ করছেন ?; (২) "আসপেক্ট রেশিও রাখুন": এটি আপনার প্রশ্নগুলিতে উল্লিখিত pt৪ স্পট বর্গক্ষেত্রের ক্যানভাসের আলোকে বিভ্রান্ত করছে, তবে কীভাবে স্কোয়ারবিহীন উপাদানগুলি পরিচালনা করতে আপনার কাছে প্রস্তাবিত স্বয়ংক্রিয় সিদ্ধান্ত প্রক্রিয়া আছে? যেমন উচ্চতা সব ক্ষেত্রে 64pt হওয়া উচিত ...
হোরাটিও

@ তাক্কাট: ইঙ্গিতটির জন্য ধন্যবাদ কর্মপ্রবাহ কাজ করে, তবে দিক অনুপাতটি নষ্ট হয়ে যায়। এর সমাধান
খুঁজবে

@ হোরাটিও: (১) ক্যানভাসের চেয়ে ছোট অঙ্কন এবং হ্যাঁ, উভয়ই একই ফাইলে। (2) আমি অঙ্কনটি সেই বিন্দুতে স্কেল করতে চাই যে সর্বোচ্চ (অঙ্কনউইথ, অঙ্কনহাইট) = 64pt।
স্টিফান এন্ড্রুলিস

@ টাক্কাত: আরএসভিজি-রূপান্তরটির একটি যুক্তি রয়েছে
রক্ষণ

উত্তর:


2

আমি এই প্রশ্নে এটি করার একটি উপায় খুঁজে পেয়েছি: কমান্ড লাইন / টার্মিনালের মাধ্যমে পৃষ্ঠা অঙ্কনে পৃষ্ঠা অঙ্কন ape

সম্পাদনা করার জন্য চিত্র হিসাবে "foo.svg" সহ:

inkscape --verb=EditSelectAll --verb=AlignHorizontalCenter --verb=AlignVerticalCenter --verb=FileSave --verb=FileQuit foo.svg

বর্তমান ডিরেক্টরিতে সমস্ত svg চিত্র সম্পাদনা করতে:

inkscape --verb=EditSelectAll --verb=AlignHorizontalCenter --verb=AlignVerticalCenter --verb=FileSave --verb=FileClose *.svg

তবে এই দ্বিতীয় কমান্ডটি একটি টন উইন্ডো খোলে যা আপনি প্রচুর চিত্র সম্পাদনা করলে আপনার কম্পিউটার ক্র্যাশ হয়ে যাবে। শুধুমাত্র লিনাক্সের জন্য , এই কমান্ডটি আরও ভালভাবে কাজ করবে:

for img in $(ls *.svg) ; do inkscape --verb=EditSelectAll --verb=AlignHorizontalCenter --verb=AlignVerticalCenter --verb=FileSave --verb=FileQuit $img ; done

উপরের কমান্ডের জন্য, ফাইলগুলির মধ্যে যদি কোনওটি সিমিলিংক হয় তবে ইনসক্যাপ লক্ষ্য ফাইলটি সম্পাদনা করবে যা সিমলিংকটি নির্দেশ করে। আপনি যদি ইঙ্কস্কেপ এটি না করতে চান তবে আপনি এই আদেশটি দিয়ে যে কোনও সিমলিংক ফিল্টার করতে পারেন:

for img in $(ls *.svg) ; do if [[ $(readlink $img) == "" ]] ; then inkscape --verb=EditSelectAll --verb=AlignHorizontalCenter --verb=AlignVerticalCenter --verb=FileSave --verb=FileQuit $img ; fi ; done


আমি যখন উপস্থিত তখন আমি সম্ভবত এটির জন্য তৈরি করা বাশ স্ক্রিপ্টটি পোস্ট করতে পারি:

#!/bin/bash
# inkscape-center <file-or-directory>...

_analyse() {
    if [ -d "${1}" ] ; then
        _centerAll "${1}" ;
    else
        _center "${1}" ;
    fi
}

_centerAll() {
    cd "${1}" ;
    for img in $(ls "*.svg") ; do
        _filterSyms "${img}" ;
    done
}

_filterSyms() {
    if [[ $(readlink "${1}") == "" ]] ; then
        _center "${1}"
    fi
}

_center() {
    inkscape --verb=EditSelectAll --verb=AlignHorizontalCenter --verb=AlignVerticalCenter --verb=FileSave --verb=FileQuit "${1}"
}

for arg ; do
    _analyse "${arg}" ;
done

আমি এটিকে বলেছি inkscape-centerএবং এটি চালিয়েছি:

inkscape-center <file-or-directory>

এটি আপনি যতটা আর্গুমেন্ট গ্রহণ করতে চান তাই আপনি এই জাতীয় কিছু করতে পারেন:

inkscape-center 1st.svg 2nd.svg 3rd.svg 4th.svg

সতর্কতা অবলম্বন করুন - আপনি যদি কোনও ফাইলের পরিবর্তে কোনও ডিরেক্টরি উল্লেখ করেন তবে এটি সেই ডিরেক্টরিতে প্রতিটি এসভিজি ফাইল সম্পাদনা করবে।


1

আপনি যা চান তা পূরণ করতে আপনি ভিউবক্স ব্যবহার করতে পারেন। আমি জানি না ইঙ্কস্কেপের মধ্যে থেকে এটি করার কোনও উপায় আছে কিনা, তবে যেহেতু এসভিজি একটি স্ট্যান্ডার্ড ফর্ম্যাট এবং সেখানে অন্য একটি সরঞ্জাম থাকতে পারে যা আপনার পছন্দ মতো কাজটি করবে। "এসভিজি কমান্ড লাইন সরঞ্জাম" এর তাত্ক্ষণিক অনুসন্ধানে কিছু আকর্ষণীয় ফলাফল প্রকাশিত হয়েছে, যার মধ্যে এটি সিএসএস আইকন তৈরির জন্য রয়েছে ।

দ্বিতীয় বিকল্পটি হ'ল এটি করতে আপনার পছন্দমতো ভাষাতে নিজের সরঞ্জামটি লিখতে হবে। মূল সূচকটি হ'ল ভিউবক্সকে আপনার নথির উচ্চতায় সেট করা, তারপরে নথির প্রস্থ এবং উচ্চতা নির্ধারণ করতে চাই। শেষ অবধি, সংরক্ষণের স্পেসট্যাটিও বৈশিষ্ট্যটি সেট করুন।

উপরে বর্ণিত পরিবর্তনগুলি মূলত 4৪৪x1052 নথির মতো দেখতে এখানে রয়েছে।

<svg
   width="64"
   height="64"
   viewBox="0 0 744 1052"
    preserveAspectRatio="xMinYMin slice"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.