Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:使用GD库时图像上出现黑色条纹_Php_Image Processing_Gd - Fatal编程技术网

PHP:使用GD库时图像上出现黑色条纹

PHP:使用GD库时图像上出现黑色条纹,php,image-processing,gd,Php,Image Processing,Gd,我对PHP中的GD库有一个小问题-我调整了图像的大小,然后我想将其裁剪为320px(宽度)/240px(高度)。让我说,调整大小的图像是320px/300px。当我裁剪它时,一个1像素的黑色条带出现在图像的底部——我不知道为什么。 我正在使用imagecrop,imagecreatefromjpeg和imagecopyresampled 下面是一个例子: 谢谢你抽出时间 代码 $filename = '../store/projects/project-123.jpg'; $mime = mi

我对PHP中的GD库有一个小问题-我调整了图像的大小,然后我想将其裁剪为320px(宽度)/240px(高度)。让我说,调整大小的图像是320px/300px。当我裁剪它时,一个1像素的黑色条带出现在图像的底部——我不知道为什么。 我正在使用
imagecrop
imagecreatefromjpeg
imagecopyresampled

下面是一个例子:

谢谢你抽出时间

代码

$filename = '../store/projects/project-123.jpg';
$mime = mime_content_type($filename);
list($w, $h) = getimagesize($filename);

$prop = $w / $h;
$new_w = 0;
$new_h = 0;

if ($prop <= 4/3) {
    $new_w = 320;
    $new_h = (int)floor($h*($new_w/$w));
} else {
    $new_h = 240;
    $new_w = (int)floor($w*($new_h/$h));
}

$thumb = imagecreatetruecolor($new_w, $new_h);

if (strcmp($mime,'image/png') == 0) {
    header('Content-Type: image/png');
    $source = imagecreatefrompng($filename);
} else {
    header('Content-Type: image/jpeg');
    $source = imagecreatefromjpeg($filename);
}

imagecopyresampled($thumb, $source, 0, 0, 0, 0, $new_w, $new_h, $w, $h);

$filename = '../store/projects-thumbs/project-123.jpg';

$crop_data = array('x' => 0 , 'y' => 0, 'width' => 320, 'height'=> 240);
$thumb = imagecrop($thumb, $crop_data);

imagejpeg($thumb, $filename, 100);  


imagedestroy($thumb);
imagedestroy($source);
$filename='../store/projects/project-123.jpg';
$mime=mime\u内容\u类型($filename);
列表($w,$h)=getimagesize($filename);
$prop=$w/$h;
$new_w=0;
$new_h=0;
如果($0,‘y’=>0,‘宽度’=>320,‘高度’=>240);
$thumb=imagecrop($thumb,$crop\u数据);
imagejpeg($thumb,$filename,100);
(拇指);
图像销毁(来源);
imagecrop()
具有导致添加黑色底部边框的


您可以使用
imagecopyresized()
解决此问题。查看另一个询问
imagecrop()
备选方案的人。

请显示您的代码我编辑了我的帖子–代码在上面:)