首页 > 解决方案 > 安装 PHP-GD 后生成的图像中的黑色文本

问题描述

我正在使用 imagick 将生成的 pdf 转换为 jpg/png 并将其保存到服务器。一切正常,但安装 php-gd 后,由于在 mpdf 中使用 png 图像,生成的 jpg 中的所有文本都是黑色的。

这是我在没有 php-gd 但没有它的情况下实际工作的代码,PNG 图像不会显示在文档中。

$mpdf->Output('temp/'.$nazev_pdf.'.pdf','F');
$pdf_file = 'temp/'.$nazev_pdf.'.pdf';
$savepath = 'temp/'.$nazev_pdf.'.jpg';
$img = new imagick();
$img->setResolution(576,576);
$img->readImage("{$pdf_file}[0]");
$img->resizeImage(2480,3508);
$img->setCompressionQuality(100);
$img->setImageFormat('jpg');
$img->writeImage($savepath);

在此处输入图像描述

我不知道如何解决它。有人知道吗?

编辑:我检查生成的 MPDF PDF 和 PDF 格式的文本是否正常。所以文字在 imagick 转换中出错了。

标签: pdfjpegimagickphp-gd

解决方案


解决了。PDF是透明的,所以我设置了PNG并修改了img convert。

$mpdf->Output('temp/'.$nazev_pdf.'.pdf','F');
$pdf_file = 'temp/'.$nazev_pdf.'.pdf';
$savepath = 'temp/'.$nazev_pdf.'.png';

$img = new imagick();
$img->setResolution(576,576);
$img->readImage("{$pdf_file}[0]");
$img->resizeImage(2480,3508);
$img->setCompressionQuality(100);
$img->setImageBackgroundColor('white');
$img->setImageCompose(\Imagick::COMPOSITE_ATOP);
$img->flattenImages();
$img->setImageFormat('png');
$img->writeImage($savepath);

推荐阅读