亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 TCPDF PHP 庫橫向顯示的圖像

使用 TCPDF PHP 庫橫向顯示的圖像

PHP
絕地無雙 2023-05-12 14:16:19
我正在使用 TCPDF PHP 庫生成包含照片的 PDF 文檔。出于某種原因,一些照片在我的計算機和網絡上顯示正確,但當我將該圖像放在 PDF 上時,它似乎是橫向的。這只發生在某些圖像上。大多數圖像顯示正確。這是在 PDF 上橫向顯示但通常在網絡和我的計算機上顯示的示例圖像:這是圖像在網絡上的樣子:這是圖像在 PDF 中的樣子:這是相關代碼:// create new PDF document$photoPDF = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);$photoPDF->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING);$photoPDF->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));$photoPDF->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));$photoPDF->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);$photoPDF->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);$photoPDF->SetHeaderMargin(PDF_MARGIN_HEADER);$photoPDF->SetFooterMargin(PDF_MARGIN_FOOTER);$photoPDF->SetAutoPageBreak(FALSE, PDF_MARGIN_BOTTOM);$photoPDF->setImageScale(PDF_IMAGE_SCALE_RATIO);$photoPDF->setJPEGQuality(100);$photoPDF->SetFont('helvetica', '', 10, '', true);$xoffset = 58;$width = 100;$height = 100;$filetype = "JPEG";$imageid = "552556832.jpeg";$url = "https://example.com/".$imageid;$photoPDF->Image('D:\ReportPhotos\\'.$imageid, $xoffset, 35, $width, $height, $filetype, $url, '', true, 150, '', false, false, 1, false, false, false);$photoPDF->writeHTMLCell($w=$width, $h=0, $x=$xoffset, $y=35+$height, $desc, $border=0, $ln=1, $fill=0, $reseth=true, $align='C', $autopadding=true);如果我在 MS Paint 中打開圖像并保存它(不做任何更改),圖像將正確顯示。我想讓圖像不在 PDF 上橫向顯示(或者如果不可能)然后我想在網絡上橫向顯示該圖像,以便用戶知道他們需要旋轉圖像而不必先生成 PDF 來查看圖像是側面的。
查看完整描述

1 回答

?
墨色風雨

TA貢獻1853條經驗 獲得超6個贊

我使用以下代碼解決了這個問題。它將從 EXIF 數據中檢測方向,并根據方向值旋轉它。這是在上傳圖像時完成的。

move_uploaded_file($uploadedFile, $destinationFilename);

correctImageOrientation($destinationFilename);



function correctImageOrientation($filename) {

? if (function_exists('exif_read_data')) {

? ? $exif = exif_read_data($filename);

? ? if($exif && isset($exif['Orientation'])) {

? ? ? $orientation = $exif['Orientation'];

? ? ? if($orientation != 1){

? ? ? ? $img = imagecreatefromjpeg($filename);

? ? ? ? $deg = 0;

? ? ? ? switch ($orientation) {

? ? ? ? ? case 3:

? ? ? ? ? ? $deg = 180;

? ? ? ? ? ? break;

? ? ? ? ? case 6:

? ? ? ? ? ? $deg = 270;

? ? ? ? ? ? break;

? ? ? ? ? case 8:

? ? ? ? ? ? $deg = 90;

? ? ? ? ? ? break;

? ? ? ? }

? ? ? ? if ($deg) {

? ? ? ? ? $img = imagerotate($img, $deg, 0);? ? ? ??

? ? ? ? }

? ? ? ? // then rewrite the rotated image back to the disk as $filename?

? ? ? ? imagejpeg($img, $filename, 95);

? ? ? } // if there is some rotation necessary

? ? } // if have the exif orientation info

? } // if function exists? ? ??

}


查看完整回答
反對 回復 2023-05-12
  • 1 回答
  • 0 關注
  • 350 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號