加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

如何使用FPDF和PHP来保持图像质量?

发布时间:2020-12-13 16:34:22 所属栏目:PHP教程 来源:网络整理
导读:我正在使用FPDF与 PHP添加图像到PDF.但是,PDF中的图像质量比原始图像差得多,如下所示: 相关代码: $image_height = 40;$image_width = 40;$pdf = new FPDF();$pdf-AddPage();$start_x = $pdf-GetX();$start_y = $pdf-GetY();$pdf-Image('./images/ds_pexeso
我正在使用FPDF与 PHP添加图像到PDF.但是,PDF中的图像质量比原始图像差得多,如下所示:

相关代码:

$image_height = 40;
$image_width = 40;
$pdf = new FPDF();
$pdf->AddPage();
$start_x = $pdf->GetX();
$start_y = $pdf->GetY();
$pdf->Image('./images/ds_pexeso_ros_0_17.jpg',$pdf->GetX(),$pdf->GetY(),$image_height,$image_width); 
$pdf->Output("pexeso".date("Y-m-d"),"I");

原始图像是150×150像素.

我在客户的项目中遇到同样的问题.
即使使用图像,也可以在生成的pdf文档中模糊图片.

花了我几个小时,但这对我有用.

我看了一下代码,看到在pdf文档的构造函数中设置了一个比例因子:

//Scale factor
if($unit=='pt')
    $this->k=1;
elseif($unit=='mm')
    $this->k=72/25.4;
elseif($unit=='cm')
    $this->k=72/2.54;
elseif($unit=='in')
    $this->k=72;
else
    $this->Error('Incorrect unit: '.$unit);

比例因子取决于pdf文档的构造函数中给出的值:

function FPDF($orientation='P',$unit='mm',$format='A4')

默认值为“mm”.在我的大部分文件中,我发起了一个pdf文件,如:

$pdf = new PDF('P');

这意味着将会使用72 / 25.4 = 2.83的比例因子.
当我使用之前放置一张图像:

$this->Image('path/to/file',0);

这样我就得到了模糊的图像.
也可以在命令中给出图像的宽度

$this->Image('path/to/file',200); // for a image width 200

这给了我一个太大的形象.但是,这里是一个诀窍 – 当你将实际宽度除以scalefactor(在我的情况下是2.83),并将其放在这个语句中,它给出了一个完全清晰的图像:

$this->Image('path/to/file',71); // for a image width 200 / 2.83 = app 71

我希望这也适合你!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读