I have been trying to convert PDF to JPG images using ImageMagick on CodeIgniter, but the produced image is in low quality and always having black background for some reason (while PDF isn't).
The code I'm using
public function converter($pdf){
$this->load->library('image_lib');
$config = array(
'image_library' => 'imagemagick',
'library_path' => '/usr/bin/convert',
'source_image' => "./pdf/".$pdf,
'new_image' => "./images/a.jpg",
'maintain_ratio' => true,
'width' => 980,
'quality' => '90%',
);
$this->image_lib->initialize( $config );
if ( $this->image_lib->resize( ) ) {
$this->image_lib->clear( );
}
}
Anybody have any idea about what does seem to be wrong here?
You need two things that CodeIgniter probably doesn't support, so you have to use ImageMagick directly.
First, you have to set the resolution of the PDF for a high-quality result. On the ImageMagick command line, this can be done with the -density
option. With PHP imagick, use setResolution
.
To get rid of the black background, you have to flatten the PDF on a white background first. On the command line, use the options -background white -flatten
. With PHP imagick, setImageBackgroundColor
and flattenImages
should work.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With