Existe uma solução melhor:
vá para Extensions -> Images -> Extract Image...
, lá você pode salvar a imagem raster selecionada como um arquivo. No entanto, esta extensão funciona de forma estranha e de alguma forma funciona bem devagar (mas perfeitamente bem).
Outra nota: esta extensão é incômoda e morre silenciosamente em imagens grandes. Além disso, com um grande número de imagens rasterizadas, pode-se aumentar o uso de memória do inkscape para níveis horrendos (como 3GB depois de apenas um punhado de imagens extraídas).
Como eu tenho cerca de 20 arquivos SVG com cerca de 70 imagens rasterizadas em cada, cada imagem tem pelo menos 1 MB de tamanho, eu precisava de uma solução diferente. Depois de uma breve checagem usando a ponta do Denilson Sá eu criei o seguinte script php, que extrai imagens dos arquivos 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);
Dessa forma, posso obter todas as imagens que quero e o md5 me impede de obter imagens repetidas.
Aposto que deve haver outra maneira muito mais simples, mas cabe ao inkscape devs fazer melhor.