Mi sto strappando i capelli.Converti PDF in JPG di alta qualità utilizzando PHP e ImageMagick
Ho un PDF da 300 DPI che voglio trasformare in un JPG da 300 DPI che è 2550x3300. Mi è stato detto che ImageMagick è in grado di fare tutto ciò, quindi faccio funzionare ImageMagick, ma restituisce solo un JPG di dimensioni pari a circa 1/5 della dimensione del PDF originale.
Non è l'immagine di origine: l'ho fatto con diversi PDF di alta qualità e tutti hanno lo stesso problema.
Dopo sgrassare StackOverflow per le idee, questo è ciò che mi è venuta da usare:
$im = new imagick($srcimg);
$im->setImageResolution(2550,3300);
$im->setImageFormat('jpeg');
$im->setImageCompression(imagick::COMPRESSION_JPEG);
$im->setImageCompressionQuality(100);
$im->writeImage($targetimg);
$im->clear();
$im->destroy();
Ma ancora non funziona.
Ho anche provato a utilizzare $ img-> resizeImage() per ridimensionare il JPG, ma poi viene fuori con una qualità veramente scadente, se la giusta dimensione.
Totalmente perplesso. Apprezzo il tuo aiuto!
Se metto per primo setImageResolution, la classe non è stata ancora dichiarata. Se faccio $ im = new imagick(), quindi $ im-> setImageResolution, quindi $ im-> readImage ($ srcimg), ottengo questo errore: Errore irreversibile: eccezione non rilevata 'ImagickException' con messaggio 'Impossibile elaborare vuoto Imagick oggetto 'in ... –
prova a usare '$ im-> setResolution()' sull'oggetto vuoto (vedi notazioni per 'Imagick :: setResolution' sul manuale) – dakdad
Sì - l'ho fatto e l'ho fatto funzionare, anche se erano necessari solo 300.300. Il trucco stava cambiando l'ordine e usando setResolution invece di setImageResolution. Grazie! –