如何使用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 我希望这也适合你! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |