इसके बजाय एक बेहतर उपाय है:
पर जाएँ Extensions -> Images -> Extract Image...
, वहाँ आप एक फ़ाइल के रूप में चयनित रेखापुंज छवि को बचा सकते हैं। हालाँकि यह विस्तार अजीब काम करता है और किसी तरह धीरे-धीरे (लेकिन पूरी तरह से) काम करता है।
एक और नोट: यह विस्तार बोझिल है और अलग-अलग बड़ी छवियों पर चुपचाप मर जाता है। इसके अलावा, बड़ी संख्या में रेखापुंज छवियों के साथ यह स्मृति के उपयोग की भयावहता को भयावह स्तर तक बढ़ा सकता है (जैसे कि 3GB केवल कुछ ही चित्र निकाले जाने के बाद)।
क्योंकि मुझे उनमें से प्रत्येक में लगभग 70 रेखापुंज छवियों के साथ 20 svg फाइलें मिली हैं, प्रत्येक छवि का आकार कम से कम 1 एमबी है, मुझे एक अलग समाधान की आवश्यकता है। Denilson Sá टिप का उपयोग करते हुए एक छोटी जाँच के बाद मैंने निम्न php स्क्रिप्ट तैयार की, जो svg फ़ाइलों से चित्र निकालती है:
#!/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);
इस तरह से मैं अपने इच्छित सभी चित्र प्राप्त कर सकता हूं, और md5 मुझे बार-बार प्राप्त होने वाली छवियों से बचाता है।
मुझे यकीन है कि एक और तरीका होना चाहिए जो बहुत सरल है, लेकिन यह बेहतर करने के लिए इनस्केप देवों पर निर्भर है।