Autor | Zpráva | ||
---|---|---|---|
nethor Profil |
#1 · Zasláno: 21. 3. 2022, 10:26:40
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í? |
||
Časová prodleva: 5 dní
|
|||
juriad Profil |
#2 · Zasláno: 26. 3. 2022, 19:42:56
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 |
#3 · Zasláno: 28. 3. 2022, 10:44:52
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. |
||
Časová prodleva: 3 roky
|
0