在我的網(wǎng)站上,您可以上傳圖片,我打算允許每次上傳至少 16k 的分辨率。在網(wǎng)站上顯示圖像時,我想使用縮略圖。要創(chuàng)建縮略圖,我使用下面的 PHP 代碼:<?php $imageUploadFile = $_FILES["passimagefile"]["tmp_name"]; $src = imagecreatefromjpeg($imageUploadFile); list( $width, $height ) = getimagesize( $imageUploadFile ); $tmp = imagecreatetruecolor( $width / $height * 700, 700 ); imagecopyresampled($tmp, $src, 0, 0, 0, 0, $width / $height * 700, 700, $width, $height); imagejpeg($tmp, $taget_thumbnail, 75);?>這適用于大多數(shù)較小的 (1k-4k) 圖像。正在正確生成縮略圖。但是,當我嘗試使用 6k 或 8k 之類的圖像進行處理時,結果突然出錯了。正在生成縮略圖,但它是全黑的。有沒有辦法來解決這個問題?
1 回答

收到一只叮咚
TA貢獻1821條經(jīng)驗 獲得超5個贊
php-gd 中有很多怪癖,通常需要大量的試驗和錯誤!
您可能已達到內部限制,因此請嘗試生成您的圖像,但在導出之前將其縮小,例如:
$tmp = imagescale($tmp, 1920, 1080);
$tmp = imagecrop($tmp,? ['x' => 0, 'y' => 0, 'width' => 1920, 'height' => 1080]);
// ...
imagejpeg($tmp, $taget_thumbnail, 75);
如果它不起作用,您必須考慮加入許多圖像,作為圖塊。
對于高級的東西,在 Linux 中,您可以嘗試使用 shell(來自 php)和 imagemagick。
- 1 回答
- 0 關注
- 133 瀏覽
添加回答
舉報
0/150
提交
取消