পরিবর্তে এর চেয়ে আরও ভাল সমাধান রয়েছে:
সেখানে যান Extensions -> Images -> Extract Image...
, আপনি ফাইল হিসাবে নির্বাচিত রাস্টার চিত্র সংরক্ষণ করতে পারেন। তবে এই এক্সটেনশনটি অদ্ভুতভাবে কাজ করে এবং কোনওভাবে বরং ধীরে ধীরে কাজ করে (তবে পুরোপুরি ভাল)।
অন্য দ্রষ্টব্য: এই এক্সটেনশনটি জটিল and এবং বিভিন্ন বৃহত চিত্রগুলিতে নিঃশব্দে মারা যায়। এছাড়াও, প্রচুর পরিমাণে রাস্টার চিত্রের সাহায্যে এটি ইনসক্যাপের মেমরির ব্যবহারকে ভয়াবহ আকারে বাড়িয়ে তুলতে পারে (কেবলমাত্র কয়েক মুঠো ছবি তোলার পরে 3 জিবি)।
যেহেতু আমি প্রায় 20 টি এসজিজি ফাইল পেয়েছি যার মধ্যে প্রায় 70 টি রাস্টার ইমেজ রয়েছে, প্রতিটি চিত্র কমপক্ষে 1 এমবি আকারের, আমার আলাদা সমাধান দরকার। ডেনিলসন সা টিপ ব্যবহার করে একটি সংক্ষিপ্ত চেক করার পরে আমি নিম্নলিখিত পিএইচপি স্ক্রিপ্টটি তৈরি করেছি, এটি এসভিজি ফাইলগুলি থেকে চিত্রগুলি বের করে:
#!/usr/bin/env php
<?php
$svgs = glob('*.svg');
$existing = array();
foreach ($svgs as $svg){
mkdir("./{$svg}.images");
$lines = file($svg);
$img = 0;
foreach ($lines as $line){
if (preg_match('%xlink:href="data:([a-z0-9-/]+);base64,([^"]+)"%i', $line, $regs)) {
$type = $regs[1];
$data = $regs[2];
$md5 = md5($data);
if (!in_array($md5, $existing)) {
$data = str_replace(' ', "\r\n", $data);
$data = base64_decode($data);
$type = explode('/', $type);
$save = "./{$svg}.images/{$img}.{$type[1]}";
file_put_contents($save, $data);
$img++;
$existing[] = $md5;
}
} else {
$result = "";
}
}
}
echo count($existing);
এইভাবে আমি চাইলে সমস্ত চিত্র পেতে পারি এবং এমডি 5 বারবার চিত্র পাওয়া থেকে আমাকে বাঁচায়।
আমি বাজি ধরছি এমন আরও একটি উপায় অবশ্যই থাকতে হবে যা অনেক সহজ, তবে এটি আরও ভাল করে চালানোর জন্য এটি ইনস্কেপ ডিভস এর উপর নির্ভর করে।