Autor Zpráva
nethor
Profil
Zdravím, pomocí Imagick získávám z PDF souboru screenshoty jednotlivých stránek a pak pomocí mPDF::WriteHTML() vkládám do nového pdf souboru.
Proces funguje až na to, že když se objeví černobílá stránka, uloží se v hloubce pouze 8BPPa Adobe Acrobat Reader při otevírání hlásí chybu 'Nedostatek dat pro obraz'.
Zkoušel jsem změnit barevný prostor $imagick->SetColorspace(imagick::COLORSPACE_RGB); i $imagick->SetColorspace(Imagick::COLORSPACE_SRGB);
Příkaz se asi provede, ale černobílý jpeg se stejně uloží jako 8BPP. Barevné stránky jsou 24BPP , ty se zobrazují bez problému.
Jak se dá přenastavit bitová hloubka pro ukládání?
juriad
Profil
Podle dokumentace to vypadá, že používáš chybnou funkci:
* www.php.net/manual/en/imagick.setcolorspace.php - nastaví globální colorspace, pro nové obrázky
* www.php.net/manual/en/imagick.setimagecolorspace.php - nastaví colorspace pro nový obrázek
* www.php.net/manual/en/imagick.transformimagecolorspace.php - změní colorspace existujícímu obrázku

Zkusil bych použít tu poslední.
nethor
Profil
juriad:
Díky, zafungovala kombinace:
$imagick->transformImageColorspace(Imagick::COLORSPACE_SRGB);
$imagick->setImageColorspace(255); 

Předtím jsem to vyřešil, obešel přidáním modré tečky:
    $BlueDot = new Imagick();  // Hack pro ukládáné ve 24 BPP
    $BlueDot->newImage(2, 1, "blue");
    $imagick->compositeImage($BlueDot, imagick::COMPOSITE_OVER, 2, 2);    

Tvé řešení je samozřejmě čistší. Díky za pomoc.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0