আমি কি কোনও এসভিজির ফাইলের আকারটিকে তার জেপিজি সমতুল্য হতে আরও কম করতে পারি?


37

আমার একটি চিত্র রয়েছে যা আমি একটি ওয়েবসাইটে ব্যবহার করছি। আমি একটি এসভিজি ব্যবহার করতে চাই যাতে এটি কোনও আকার হতে পারে এবং এখনও খাস্তা দেখাবে।

  • এই ড্রপবক্সে এসভিজি ফাইলের পাশাপাশি মূল চিত্রকের ফাইল রয়েছে।
  • এটি একটি জেপিজি রফতানি:

    জেপিইজি রফতানি

এসভিজির জেপিজির তুলনায় অনেক বড় ফাইল আকার রয়েছে। এসভিজিটিকে কী অনুকূল করতে পারা সম্ভব যাতে এটির অনুরূপ ফাইলের আকার থাকে? আমি সাহায্য করতে পারি যদি গুণমান কিছু হারাতে সক্ষম হতে পারে। আমি এই এসভিজি অপটিমাইজারটি চেষ্টা করেছি , তবে এতে খুব বেশি পার্থক্য হয়নি।

যদি আমি ইলাস্ট্রেটর ফাইলটিকে একটি জেপিজি হিসাবে সংরক্ষণ করি, ফলাফলটি সনাক্ত করে এটি একটি এসভিজি হিসাবে সংরক্ষণ করি, তবে আমি অনেক ছোট ফাইলের আকার পাই তবে কিছুটা মানের ক্ষতি হয়। এটি আমাকে ভাবতে বাধ্য করে যে সম্ভবত আসল স্তরগুলি বড় আকারের কারণ হয়ে উঠছে? আমি যে চিত্রটি নিয়ে কাজ করছি তা কি খুব বেশি জটিল এসভিজির জন্য উপযুক্ত?


16
আপনার প্রশ্নের সাথে সম্পর্কিত নয়, তবে এই জাতীয় চিত্রের জন্য আপনার জেপিজি ব্যবহার করা উচিত নয়। পরিবর্তে, পিএনজি ব্যবহার করুন: আকারটি সম্ভবত একই রকম হতে পারে এবং আপনি মানের কোনও ক্ষতি পাবেন না।
সোভিক

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

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

1
কেবল এসভিকের মন্তব্যে যুক্ত করার জন্য: চিত্রগুলি "এই জাতীয়" যেখানে পিএনজি আরও ভাল তা স্বচ্ছ প্রান্তযুক্ত বা রঙের বা সাদা বর্ণের ধারালো শক্ত অঞ্চলযুক্ত কিছু। যদি এটি 'গ্রাফিক' (যেমন লোগো, আইকন, ইত্যাদি) কোনও 'ফটো' নয়, পিএনজি সাধারণত আরও ভাল। জেপিজি ফটোগ্রাফগুলির জন্য (বা ফটো-রিয়েলিস্টিক চিত্রগুলি) ভাল।
user56reinstatemonica8

উত্তর:


40

আপনার এসভিজিতে নিয়ামকের নীচে ডানদিকে ছায়ার জন্য একটি এম্বেডড পিক্সেল গ্রাফিক রয়েছে। এটি ফাইল আকারের প্রায়। এর জন্য দায়ী। আপনি যদি এটি অপসারণ করেন তবে আপনার এসভিজি ফাইলটি আপনার জেপিগের সমতুল্য। আপনি সম্ভবত গ্রেডিয়েন্টের সাথে পর্যাপ্ত পরিমাণে অনুরূপ প্রভাব অর্জন করতে পারেন।

এসভিজি ফাইলের আকার হ্রাস করার অন্যান্য কৌশলগুলির মধ্যে রয়েছে:

  • সমস্ত মেটাডেটা এবং অনুরূপ সরান। ইঙ্কস্কেপ এর জন্য সাদামাটা এসভিজি হিসাবে সংরক্ষণ করেছে । আমি মনে করি যে অন্যান্য প্রোগ্রামগুলিরও কিছু মিল রয়েছে।
  • আকারগুলিতে সামান্য যুক্ত হওয়া নোডগুলি সরান, উদাহরণস্বরূপ, আপনার নিয়ামকের আকারে মজাদার নোড রয়েছে।

এটি আমাকে ভাবতে বাধ্য করে যে সম্ভবত আসল স্তরগুলি বড় আকারের কারণ হয়ে উঠছে?

যদি আপনি অযৌক্তিকভাবে অনেক স্তর ব্যবহার না করেন (প্রতিটি বস্তুর জন্য একটি স্তর বিবেচনা করুন), স্তরগুলি ফাইল আকারের ক্ষেত্রে প্রাসঙ্গিক অবদান রাখবে না এবং তারপরেও, এটি কেবলমাত্র একটি ভগ্নাংশ হবে।

আমি যে চিত্রটি নিয়ে কাজ করছি তা কি খুব বেশি জটিল এসভিজির জন্য উপযুক্ত?

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


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


80

যেমন Wrzlprmft ইতিমধ্যে ইঙ্গিত করেছে, আপনার এসভিজি ফাইলের আকারের 50% এর উপরে একটি এম্বেড করা পিএনজি বিটম্যাপ চিত্র নিয়ে যায় যা নিয়ামকের উপর মোটামুটি সূক্ষ্ম শেডিং প্রভাব তৈরি করতে ব্যবহৃত হয়। কেবলমাত্র সেই চিত্রটি থেকে মুক্তি পাওয়া এবং এটিকে একটি সাধারণ রেডিয়াল গ্রেডিয়েন্টের সাথে প্রতিস্থাপন করা এসভিজিটিকে প্রায় 10 কেবিতে সঙ্কুচিত করার জন্য যথেষ্ট।

        মূল         সাধারণ রেডিয়াল গ্রেডিয়েন্ট সহ
বামদিকে অভিনব বিটম্যাপ শেডিং সহ মূল চিত্র, ডানদিকে সরল রেডিয়াল গ্রেডিয়েন্ট সহ সম্পাদিত সংস্করণ।

আপনি যখন সেখানে পৌঁছেছেন, সেখানে সরল করার মতো কিছু আছে কিনা তা দেখতে আপনার পাথও পরীক্ষা করা উচিত। আমি খুব বেশি কিছু পাইনি, তবে আপনার নিয়ামকের বাহ্যরেখার সাথে কয়েকটি সংলগ্ন নোড রয়েছে (উপরে এবং নীচের মাঝের কাছে) যা কোনও দৃশ্যমান পার্থক্য না করে মার্জ করা যায়।

এটি ঠিক সেখানে 50% সাশ্রয়, তবে আসুন এখনও থামব না। আপনি যদি এসভিজি ফর্ম্যাটটি সম্পর্কে কিছুটা জানেন তবে আপনি এর থেকে আরও অনেক ভাল করতে পারেন ।

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

যাইহোক, আপনার পাঠ্য সম্পাদকটিতে এসভিজি ফাইলটি খোলার সাথে সাথে এর সহজকরণ শুরু করা যাক!

  • ডানদিকের শীর্ষে, এখানে একটি বড় অকেজো <!-- comment -->। শুধু এটি মুছুন।

  • আপনি যদি সরাসরি চিত্রকের কাছ থেকে কোনও এসভিজি সম্পাদনা করেন তবে অকেজো <!DOCTYPE ... >লাইনও রয়েছে। এটিও মুছুন।

  • Inkscape আপনার চিত্রের মধ্যে একটি অকেজো আরডিএফ মেটাডেটা ব্লকটি স্টিক করার জন্য জোর দেয়। কেবল <metadata ...>ট্যাগটি সন্ধান করুন এবং ক্লোজিং পর্যন্ত সমস্ত কিছুর পাশাপাশি এটি মুছুন </metadata>

  • এছাড়াও, আপনি "প্লেইন এসভিজি" হিসাবে ফাইলটি সংরক্ষণ করলেও, ইনস্কেপ এখনও কাস্টম বৈশিষ্ট্যের একটি গুচ্ছ দিয়ে এটি লিটার করে। প্রত্যেক গুণ যা দিয়ে শুরু হয় এই inkscape:বা sodipodi:তাদের মুছে দিন।

  • মেটাডেটা এবং ইনস্কেপ-নির্দিষ্ট বৈশিষ্ট্যগুলি চলে যাওয়ার সাথে সাথে আপনি <svg>ট্যাগ থেকে সমস্ত অব্যবহৃত এক্সএমএল নেমস্পেস বৈশিষ্ট্যগুলি মুছতে পারেন । এটা তোলে অন্তত সরানো নিরাপদ হওয়া উচিত xmlns:rdf, xmlns:dc, xmlns:cc, xmlns:inkscapeএবং xmlns:sodipodi। যদি কোনও অপ্রয়োজনীয় xmlns:svgবৈশিষ্ট্য থাকে তবে এটিও সরিয়ে দিন। এই মুহুর্তে আপনার কেবলমাত্র নাম স্পেসটি রেখে যাওয়া উচিত:

    xmlns="http://www.w3.org/2000/svg"
    xmlns:xlink="http://www.w3.org/1999/xlink"
  • <svg>ট্যাগ যেমন হিসাবে অন্যান্য বেহুদা বৈশিষ্ট্যাবলী আপনি নিরাপদে সরাতে পারেন, একটি গুচ্ছ আছে enable-backgroundএবং xml:space="preserve"। (যাদের ইলাস্ট্রেটর করা SVG রপ্তানিকারক দ্বারা ঢোকানো হয়েছে এবং ইঙ্কস্পেস স্মার্ট যথেষ্ট উপলব্ধি করা তারা বেহুদা করছি নয়।) viewBoxঅ্যাট্রিবিউট এছাড়াও নিরাপদে, এই চিত্র থেকে সরানো হতে পারে যেহেতু এটি শুধু মান পুনরাবৃত্তি x, y, widthএবং heightবৈশিষ্ট্যাবলী।

  • আপনি ট্যাগ থেকে সুরক্ষা encodingএবং standaloneবৈশিষ্ট্যগুলি নিরাপদে মুছে ফেলতে পারেন <?xml ... ?>

  • এবার আসুন চিত্রের ডেটাগুলির সাহসগুলি। কোনও কারণে, ইনসকেপ idপ্রতিটি উপাদানকে অ্যাট্রিবিউট বরাদ্দ করার জন্য জোর দেয় , এমনকি যদি সেগুলি কখনই রেফারেন্স করা না হয়। এমন কোনও idবৈশিষ্ট্য যার মানটি কখনও ফাইলের অন্য কোথাও পুনরাবৃত্তি হয় না (এটি অনুসন্ধান করুন!) মুছে ফেলা নিরাপদ। মূলত, কেবলমাত্র আইডিগুলি আপনার রাখা দরকার তা হ'ল গ্রেডিয়েন্টগুলির জন্য এবং সম্ভবত <defs>বিভাগগুলির অভ্যন্তরে পাওয়া অন্য কোনও বস্তুর (যেমন পাথ) জন্য for

  • এছাড়াও, ইনস্কেপ পছন্দ মতো দীর্ঘ আইডি তৈরি করতে পছন্দ করে linearGradient4277। সংক্ষিপ্ত কোনও আইডি সংক্ষেপে বিবেচনা করুন যা আপনি কেবল lg1তার পরিবর্তে খুব ছোট কিছুতে মুছতে পারবেন না ।

  • <defs>একের পর একাধিক বিভাগ রয়েছে। এগুলিকে একত্রিত করার ফলে কয়েকটি বাইট সাশ্রয় হয় (এবং সাধারণভাবে নথির কাঠামোর সরলকরণ হয়)।

  • <g>ফাইলের শেষে বেশ কয়েকটি খালি গোষ্ঠী ( উপাদান) রয়েছে। কেবল এগুলি থেকে মুক্তি পান। ঠিক একই transformবৈশিষ্ট্য সহ একাধিক একটানা গ্রুপও থাকতে পারে (বা কিছুই নয়); এটি একীভূত করাও নিরাপদ।

  • কিছু অদ্ভুত কারণে, ইনসকেপ উপাদানগুলির dজন্য একটি রিলান্ড্যান্ট বেজিয়ার পাথ ( বৈশিষ্ট্য) সংরক্ষণ <circle>করে। এটি একেবারে কোনও কারণ ছাড়াই স্থান গ্রহণ করে, সুতরাং কেবল তাদের মুছুন। ( উপাদানগুলিতে dবৈশিষ্ট্যগুলি ছেড়ে দিন <path>; সেগুলি আসলে কোনও কিছুর জন্য ব্যবহৃত হয়))

  • ইনকস্কেপ এমন styleবৈশিষ্ট্যগুলিতে সিএসএস ব্যবহার করতেও পছন্দ করে যেখানে আরও নির্দিষ্ট বৈশিষ্ট্যগুলি সংক্ষিপ্ত হবে, উদাহরণস্বরূপ fill="#4888fa"আরও ভার্বোজে পুনরায় লেখা style="fill:#4888fa"। আপনি সেই স্টাইলগুলি পৃথক বৈশিষ্ট্যগুলিতে বিভক্ত করে (এবং কেবল অকার্যকরভাবে ডিফল্ট সেটিংসটির পুনরাবৃত্তি করে এমনগুলি সরিয়ে) কয়েকটি বাইট সংরক্ষণ করতে পারেন, তবে উপরের বেশিরভাগ পরিবর্তনের চেয়ে এসভিজি ফর্ম্যাটের সাথে কিছুটা বেশি পরিচিতি পাবেন।

  • এছাড়াও, যদি কোনও <use ... >উপাদান থাকে তবে আপনি সংযুক্ত হচ্ছেন এমন প্রকৃত উপাদান দিয়ে প্রতিস্থাপন করে আপনি কয়েকটি বাইট সংরক্ষণ করতে পারবেন। (অবশ্যই, লিঙ্কযুক্ত উপাদানগুলি কেবল একবার ব্যবহার করা হলে এটি কেবল স্থান সাশ্রয় করে It) এগুলিও মনে হয় যে ইনকস্কেপ পরোক্ষভাবে বৃত্তাকার গ্রেডিয়েন্টগুলি সংজ্ঞায়িত করতে পছন্দ করে, প্রথমে একটিতে স্টপগুলি সংজ্ঞায়িত করে <linearGradient>এবং তারপর এটিকে রেফারেন্স করে <radialGradient>; আপনি সরাসরি রেডিয়াল গ্রেডিয়েন্টের অভ্যন্তরে স্টপগুলি সরিয়ে এবং এখন অব্যবহৃত লিনিয়ার গ্রেডিয়েন্ট থেকে মুক্তি পেয়ে এটিকে সহজ করতে পারেন ify বোনাস হিসাবে, যদি এটি করে আপনি সমস্ত xlink:hrefবৈশিষ্ট্য থেকে মুক্তি পেতে পরিচালিত হন , আপনি ট্যাগটি xmlns:xlinkথেকে বৈশিষ্ট্যটি মুছতে পারেন <svg>

  • আপনি যদি প্রতি শেষ অতিরিক্ত বাইটটি সত্যিই বাইরে বের করতে চান, তবে অনেকগুলি দশমিকের সাথে সংখ্যাসূচক মানগুলি সন্ধান করুন এবং এগুলি আরও বুদ্ধিমানের দিকে নিয়ে যান। এটি এখানেই লাইভ পূর্বরূপটি সত্যই সহায়তা করে, যেহেতু এটি আপনাকে দৃশ্যমান হওয়া শুরু হওয়ার আগে মানটি কতটা গোল করতে পারে তা আপনাকে দেয়। এমনকি আপনি এটির পরিমাণ কতটা বৃত্তাকার হতে পারে তা দেখার জন্য প্রতিটি সংখ্যার যত্ন সহকারে পরীক্ষা করতে না চান, তবে, আপনি কমপক্ষে কম-ঝুলন্ত ফল বেছে নিতে পারেন, বলুন, 1.0000859পিক্সেলের একটি মানকে গোল করে 1

  • পরিশেষে, ফাইলের ইনডেন্টেশন এবং সাদা স্থান পরিষ্কার করুন। বাইট গণনাটি একেবারে হ্রাস করার জন্য, আপনাকে সমস্ত কিছু এক লাইনে লাগাতে হবে (বা কমপক্ষে কেবল গুনের সামনে লাইন ব্রেক রাখতে হবে, যেখানে হোয়াইটস্পেসের প্রয়োজন আছে) তবে এটি পড়াই সত্যিই শক্ত। তবুও, কিছু সহজ, রক্ষণশীল ইন্ডেন্টেশন সহ পাঠযোগ্যতা এবং সংক্ষিপ্ততার মধ্যে একটি শালীন ভারসাম্য রোধ করা সম্ভব।

যাইহোক, আমি এখানে আপনার এসভিজি চিত্রটি হ্যান্ড-সম্পাদনা করার জন্য পরিচালনা করেছি:

<?xml version="1.0"?>
<svg
  xmlns="http://www.w3.org/2000/svg"
  version="1.1"
  x="0" y="0" width="124" height="52">
<g transform="translate(1,-27.5)">
  <linearGradient id="lg1"
    x1="70.1063" y1="13.4122"
    x2="66.1994" y2="-26.4368"
    gradientUnits="userSpaceOnUse"
    gradientTransform="matrix(0.9997,-0.0263,0.0263,0.9997,-7.4,61.3)">
    <stop offset="0" stop-color="#154BBF" />
    <stop offset="1" stop-color="#6E8BFF" />
  </linearGradient>
  <path d="M 119.198,75.836 C 115.115,80.541 7.902,78.843 3.585,74.366 -0.734,69.888 -1.322,46.938 2.76,42.233 6.842,37.53 113.821,30.047 118.137,34.524 c 4.319,4.477 5.143,36.609 1.061,41.312 z" id="path3298" fill="url(#lg1)" />
  <linearGradient id="lg2"
    x1="70.4391" y1="13.5887"
    x2="70.4391" y2="-25.3265"
    gradientUnits="userSpaceOnUse"
    gradientTransform="matrix(0.9997,-0.0263,0.0263,0.9997,-7.4,61.3)">
    <stop offset="0" stop-color="#4166FA" />
    <stop offset="1" stop-color="#87A4FF" />
  </linearGradient>
  <path d="M 119.2,71.843 C 115.247,76.118 11.615,74.749 7.447,70.692 3.281,66.635 2.747,45.804 6.7,41.528 c 3.953,-4.277 107.372,-11.239 111.539,-7.183 4.167,4.057 4.915,33.222 0.961,37.498 z" id="path3305" fill="url(#lg2)" />
  <path stroke="#fff" stroke-width="5" d="m 103.734,64.225 0,0 c -0.921,-0.271 -1.661,-0.724 -2.2,-1.342 -0.917,-1.051 -0.957,-2.455 -0.88,-3.576 -1.831,-0.373 -3.866,-0.886 -7.099,-1.84 -3.233,-0.954 -5.221,-1.627 -6.961,-2.308 -0.544,0.983 -1.34,2.14 -2.679,2.525 -0.789,0.227 -1.656,0.204 -2.577,-0.068 -1.415,-0.417 -2.876,-1.431 -3.723,-2.583 -1.731,-2.354 -1.283,-6.55 -0.601,-9.655 0.964,-4.399 3.692,-11.662 7.252,-13.641 3.374,-1.877 12.426,0.468 16.37,1.6315 3.944,1.1635 12.873,4.1185 14.692,7.5355 1.914,3.596 0.262,11.176 -1.317,15.393 -1.113,2.978 -3.016,6.746 -5.746,7.782 -1.338,0.505 -3.117,0.564 -4.531,0.146 z" />
  <path fill="#4888fa" d="m 103.734,64.225 0,0 c -0.921,-0.271 -1.661,-0.724 -2.2,-1.342 -0.917,-1.051 -0.957,-2.455 -0.88,-3.576 -1.831,-0.373 -3.866,-0.886 -7.099,-1.84 -3.233,-0.954 -5.221,-1.627 -6.961,-2.308 -0.544,0.983 -1.34,2.14 -2.679,2.525 -0.789,0.227 -1.656,0.204 -2.577,-0.068 -1.415,-0.417 -2.876,-1.431 -3.723,-2.583 -1.731,-2.354 -1.283,-6.55 -0.601,-9.655 0.964,-4.399 3.692,-11.662 7.252,-13.641 3.374,-1.877 12.426,0.468 16.37,1.6315 3.944,1.1635 12.873,4.1185 14.692,7.5355 1.914,3.596 0.262,11.176 -1.317,15.393 -1.113,2.978 -3.016,6.746 -5.746,7.782 -1.338,0.505 -3.117,0.564 -4.531,0.146 z" />
  <path fill="#87b5ff" d="m 114.774,40.292 c -1.17,-2.151 -7.571,-4.939 -14.293,-6.921 V 33.37 c -0.023,-0.007 -0.047,-0.014 -0.07,-0.021 -0.023,-0.007 -0.047,-0.015 -0.071,-0.02 l 0,0 c -6.723,-1.985 -13.612,-3.12 -15.761,-1.949 -4.296,2.337 -9.198,17.315 -6.265,21.228 0.907,1.209 3.014,2.449 4.466,2.043 1.452,-0.404 2.121,-3.4 2.652,-3.174 2.518,1.077 5.601,2.117 8.744,3 3.119,0.966 6.272,1.765 8.972,2.229 0.569,0.097 -0.498,2.975 0.502,4.104 1.001,1.128 3.443,1.232 4.861,0.709 4.586,-1.693 8.602,-16.933 6.263,-21.227 z" />
  <path fill="#2f67c9" d="m 90.818,42.604 c -0.097,-0.194 -0.901,-0.575 -1.999,-1.006 0.317,-1.135 0.497,-2.007 0.401,-2.2 -0.319,-0.641 -3.681,-1.766 -4.323,-1.447 -0.192,0.096 -0.574,0.9 -1.004,1.998 -1.135,-0.315 -2.006,-0.497 -2.201,-0.401 -0.64,0.319 -1.766,3.681 -1.446,4.322 0.096,0.193 0.901,0.575 1.997,1.006 -0.316,1.134 -0.496,2.007 -0.4,2.199 0.32,0.64 3.682,1.767 4.323,1.447 0.193,-0.095 0.575,-0.901 1.005,-1.997 1.135,0.314 2.008,0.496 2.199,0.401 0.642,-0.32 1.767,-3.682 1.448,-4.322 z" />
  <path fill="#4888fa" d="m 100.282,33.311 c -0.024,-0.007 -0.046,-0.013 -0.069,-0.02 -0.023,-0.006 -0.046,-0.013 -0.07,-0.02 l 0,0 c -2.455,-0.725 -4.932,-1.334 -7.181,-1.755 -0.765,2.073 -1.164,4.497 -0.789,5.91 0.627,2.363 9.764,5.059 11.574,3.414 1.096,-0.996 2.091,-3.297 2.566,-5.483 -1.876,-0.731 -3.937,-1.428 -6.031,-2.046 l 0,0 z" />
  <circle fill="#639bff" r="3.427" cy="46.947" cx="101.382" />
  <circle fill="#4888fa" r="2.868" cy="45.940" cx="109.28" />
  <circle fill="#2f67c9" r="2.868" cy="52.538" cx="106.287" />
  <radialGradient id="rg3"
    cx="90.874" cy="39.29"
    fx="90.874" fy="39.29"
    r="19.89"
    gradientUnits="userSpaceOnUse"
    gradientTransform="matrix(1.7028,-0.3387,0.276,1.3872,-70.22,16.58)">
    <stop stop-color="#1166a8" stop-opacity="0" offset="0" />
    <stop stop-color="#1166a8" stop-opacity="0.02" offset="0.45" />
    <stop stop-color="#1166a8" stop-opacity="0.63" offset="1" />
  </radialGradient>
  <path d="m 103.734,64.225 0,0 c -0.921,-0.271 -1.661,-0.724 -2.2,-1.342 -0.917,-1.051 -0.957,-2.455 -0.88,-3.576 -1.831,-0.373 -3.866,-0.886 -5.973,-1.508 -0.375,-0.11 -0.75,-0.223 -1.124,-0.338 -0.378,-0.107 -0.753,-0.216 -1.128,-0.326 -2.107,-0.622 -4.095,-1.295 -5.835,-1.976 -0.544,0.983 -1.34,2.14 -2.679,2.525 -0.789,0.227 -1.656,0.204 -2.577,-0.068 -1.415,-0.417 -2.876,-1.431 -3.723,-2.583 -1.731,-2.354 -1.283,-6.55 -0.601,-9.655 0.964,-4.399 3.692,-11.662 7.252,-13.641 3.374,-1.877 12.426,0.468 16.245,1.591 l 0.274,0.081 c 3.795,1.123 12.724,4.078 14.543,7.495 1.914,3.596 0.262,11.176 -1.317,15.393 -1.113,2.978 -3.016,6.746 -5.746,7.782 -1.338,0.505 -3.117,0.564 -4.531,0.146 z" fill="url(#rg3)" />
</g></svg>

এই এসভিজি চিত্রটি উপরের দ্বিতীয় উদাহরণের চিত্র থেকে পৃথক পৃথক নয়, এবং কেবল আপনার জেপিইজি চিত্রের চেয়ে কম 5189 বাইট নেয় । আমি নিশ্চিত এটি আরও অপ্টিমাইজড হতে পারে তবে এটি অনুশীলনের সাথে কয়েক মিনিটের মধ্যে আপনি কী করতে পারেন তার এটি কেবল উদাহরণ। ( এসভিজি কোডটি সম্পাদনা করার চেয়ে এই উত্তরটি টাইপ করতে আমার অনেক বেশি সময় লেগেছে ))

অবশেষে, এই এসভিজি কোডটি জিজিপ দিয়ে সংকুচিত করে এটি আপনার জেপিইজি সংস্করণটির আকারের এক চতুর্থাংশের মধ্যে সীমাবদ্ধ হয়ে মাত্র 1846 বাইট (!) এ নেমেছে।


4
সুন্দরভাবে golfed
Wrzlprmft

7
লাইন ব্রেক থেকে মুক্তি পান এবং আপনি আরও 50 টি বাইট সংরক্ষণ করতে চান :)
ইয়োরিক

15
এই দুর্দান্ত উত্তরের জন্য আমাকে এই সাইটে যোগদান করতে হয়েছিল! সাবাশ!
কার্ল-জোহান সিজেগ্রেন

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

30

আমি কিছুটা অবাক হয়েছি কেউ " স্কোর " এক্সটেনশনের কথা উল্লেখ করেনি । এটি ইনস্কেপ (v0.47 হিসাবে) এর সাথে বান্ডিল রয়েছে এবং ইলমারি করোনেন উল্লেখ করেছেন এমন অনেকগুলি অপ্টিমাইজেশন করে।


14
+1 এটি দুর্দান্ত! সত্যিই, আমি জানতাম না যে এই সরঞ্জামটির অস্তিত্ব ছিল। অধিকার বিকল্পগুলির মাধ্যমে, কমান্ড-লাইন সংস্করণের এমনকি প্রায় 200 বাইট আমার হাত-অপ্টিমাইজ করা কোড beats, এবং এটি চলমান উপর হাতে অপ্টিমাইজ কোড শুধু 4571 বাইট এটিকে নিচে পায় (!)।
ইলমারি করোনেন

5

আপনি এটিকে একটি সংকুচিত এসভিজি (এসভিজিজেড) এ রূপান্তর করতে পারেন এবং আপনার ওয়েব পৃষ্ঠায় চিত্র.svgz রাখতে পারেন:

gzip image.svg
mv image.svg.gz image.svgz

অথবা, অ্যাডোব ইলাস্ট্রেটারে কেবল "এসভিজি সংক্ষেপিত" হিসাবে সংরক্ষণ করুন, যা একটি চিত্র.এসভিজিজেড ফাইল লিখবে।

আপনার পরীক্ষার চিত্রের জন্য এটি এখনও জেপিজির চেয়ে বড়, যদিও:

image.jpg:   7268 bytes
image.svg:  22385 bytes
image.svgz: 14614 bytes

6
সংক্ষেপিত এসভিজিগুলি বেশিরভাগ ক্ষেত্রেই কাজ করে না, যদি না হয় তবে সাম্প্রতিক আইই এর দুঃখের বিষয়। ধারণাটি সহায়ক, তবে IE এটিকে কম কার্যকর করে তোলে। যাইহোক +1 কারণ এটি আপনার দোষ নয় IE :)
ডোম

5
@ ডম, আইই এবং পিএনজির সাথে অভিজ্ঞতাটি 3-5 দশক নয় বছরের পরামর্শ দেয়।
গ্লেন রেন্ডার্স-পেহারসন

3
বাশিং আইই কখনই আমাকে পরিতৃপ্তি দেয় না! :) এটি বেশ দুর্দান্ত যে আমরা আপনার স্তরের অভিজ্ঞতার স্তরের কাউকে জিডিএসই-তে আকৃষ্ট করতে পারি, আমি আশা করি আপনারা এটি এখানে পছন্দ করবেন এবং কেউ যদি এখনও এটি না বলে থাকে, স্বাগতম!
ডোম

2
আই-তে পরীক্ষা করতে, আপনি আধুনিক.ie
স্কট কার্লসন

4
যদি আপনি এটি কোনও ওয়েবসাইটে পরিবেশন করছেন, এটি এইচটিটিপি সংক্ষেপণের অনুরোধকারী ক্লায়েন্টদের (যেটি সাধারণত জিজেপ ব্যবহার করে সাধারণত) তুচ্ছ সুবিধা উপস্থাপন করবে।
বব

3

আমি সম্প্রতি https://petercollingridge.appspot.com/svg-editor ( উত্স কোড ) এ একটি সরঞ্জাম পেয়েছি যা এসভিজি ফাইলগুলি অনুকূল করতে সহায়তা করে। এক্ষেত্রে এর ভাল ফলাফল রয়েছে, ফাইলের আকারটি 3.7 কেবিতে নামিয়ে আনে, যা সামান্য ম্যানুয়াল অ্যাডজাস্ট করে জেপিজির আকারের অর্ধেকেরও বেশি is

এসভিজি ফাইলগুলি অনুকূল করতে এই সরঞ্জামটি ব্যবহার করতে ম্যানুয়ালি ফাইলটি গল্ফ করার চেয়ে উল্লেখযোগ্যভাবে কম সময় প্রয়োজন requires


গ্রাফিক ডিজাইন এসই তে আপনাকে স্বাগতম। নোট করুন যে প্রশ্নকর্তা প্রশ্নের মধ্যে এই খুব সরঞ্জাম উল্লেখ করেছেন। এটি এই উত্তরটিকে অবৈধ করে না, তবে আপনি এটিকে দৃষ্টিকোণে রাখতে পারেন। এছাড়াও, ম্যানুয়াল অ্যাডজাস্টমেন্ট
Wrzlprmft

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

এসভিজিওএমজি (ডোমের উত্তর থেকে) এর মতো, এখানেও সবচেয়ে বড় সঞ্চয়টি এক্সলিংক অক্ষম করা থেকে আসে বলে মনে হয়, যা পার্শ্ব প্রতিক্রিয়া হিসাবে, এম্বেড থাকা চিত্রটিকে পুরোপুরি মুছে দেয়। স্পষ্টতই, গ্রেডিয়েন্টের সাথে চিত্রটি প্রতিস্থাপন করা এমন কোনও জিনিস নয় যা আপনি একটি স্বয়ংক্রিয় সরঞ্জামটি আশা করতে পারেন।
ইলমারি করোনেন

3

SVGOMG! এসভিজি অপ্টিমাইজেশনের জন্য দুর্দান্ত একটি ওয়েব-অ্যাপ

অ্যাপটির নির্মাতার মতে, এসভিজিওএমজি হ'ল এসভিজিওর " এম জারি করে জি ইউআই"।

প্রদত্ত চিত্রটিতে এটি চালানো এটিকে কেবল নীচে নামায় 3.42kbএবং 1.4kbজিপিপ করার পরে being

এসভিজিওএমজি স্ক্রিনশট


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

1
আমার কেবল গ্রেডিয়েন্টের সাথে আর-অপ্টিমাইজড সংস্করণ নেই, তবে আমি শেষের সাথে বিটম্যাপটি প্রতিস্থাপন করতে <radialGradient>এবং <path>নিজের হ্যান্ড-অপ্টিমাইজড কোড থেকে ম্যানুয়ালি মূল এসভিজি সম্পাদনা করি তবে এসভিজিওএমজি ফলাফলের 5.8 কেবি চিত্রটি নীচে নামিয়ে আনবে ৪.০২ কেবি (৪.১১ কেবি পূর্বনির্ধারিত), এবং মনে হচ্ছে এটি বেশ সুন্দর কাজ করেছে; আমি সত্যিই কোন স্পষ্ট মিস সুযোগ দেখতে পাচ্ছি না। (এটি আরও কিছুটা খেলতে গিয়ে আমি লক্ষ্য করেছি যে এটি কখনও কখনও অভিন্ন অ্যাটর্সগুলির সাথে একটানা গ্রুপগুলিকে একীভূত করতে ব্যর্থ হয়; ইনসক্যাপ কখনও কখনও সেগুলি তৈরি করে বলে মনে হয়, উদাহরণস্বরূপ পৃষ্ঠা আঁকার সাথে সামঞ্জস্য করার সময়।)
ইলমারি করোনেন

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

1
নিয়ামকের দিকে ঘনিষ্ঠভাবে দেখুন: আপনি যদি আসল এসভিজির অনুকূলকরণের সময় "রাস্টার চিত্রগুলি সরান" নির্বাচন করেন তবে নিয়ামকের শেড সম্পূর্ণরূপে অদৃশ্য হয়ে যায় (কারণ এটি আসলে একটি এমবেডেড সেমিট্রান্সপারেন্ট পিএনজি)। আপনি যদি আসল জেপিগের উত্তরটিতে স্ক্রিনশটটি তুলনা করেন তবে আপনি এটি দেখতে পাবেন। আমার পাওয়া 4.02 কেবি সংস্করণটি আরও বড় কারণ এটিতে সরানো শেড প্রতিস্থাপনের জন্য একটি অতিরিক্ত পথ এবং গ্রেডিয়েন্ট অন্তর্ভুক্ত রয়েছে।
ইলমারি করোনেন

@ ইলমারি কারোনেন আমি মনে করি আমি পার্থক্যটি দেখতে পাচ্ছি , এটি এতটা সামান্য যে আমি আমার চোখের কৌশলগুলি খেলছি কিনা তা আমি নিশ্চিত নই। এটি একটি ভাল পয়েন্ট, আমি কেবল এসভিজির মধ্যে এখন পর্যন্ত দৃ colors় রঙের সাথে কাজ করেছি তাই ভবিষ্যতে এটি মনে রেখেছি, ধন্যবাদ।
ডোম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.