图像裁剪/调整大小会返回随后选择的更多图像。 PHP

时间:2018-03-15 14:04:42

标签: php

我正在创建一个图像大小调整工具。使用JavaScript完成选择等,然后将值发送到PHP。这工作得非常好。但是,图像未正确调整大小。新图像获得正确的宽度/高度,但图像的选定部分得到了缩放"并且返回与所选内容相比的更多图像。以下图片的示例。

调整大小前的图像宽度/高度

宽度:280px 高度:210px

调整详细信息

Resize details

输出图像

Output image

<?php

    $width = 163.094;
    $height = 148.5;
    $new_width = 62.18745;
    $new_height = 69.87505;

    $dst_left = 0;
    $dst_top = 0;
    $src_left = 49.15625;
    $src_top = 39.03125;

    header('Content-Type: image/png');

    // Create a empty image
    $new_image = imagecreatetruecolor($new_width, $new_height);

    // Set background transparent
    imagefill($new_image,0,0,0x7fff0000);

    // Create image
    $image = imagecreatefrompng("../../uploads/img/imageNX4jDQ.png");

    // Create new image
    imagecopyresampled($new_image, $image, $dst_left, $dst_top, $src_left, $src_top, $new_width, $new_height, $width, $height);

    // Keep transparency
    imageAlphaBlending($new_image, true);
    imageSaveAlpha($new_image, true);

    // Output
    $test = imagepng($new_image, "../../uploads/img/test.png");

    $test;

?>

1 个答案:

答案 0 :(得分:2)

这个图总能帮助我:

http://php.net/manual/en/function.imagecopyresampled.php#112742

除此之外我会期待你的JS通过原始宽度62.18745,高度69.87505。

如果您需要在此之后缩小图像,则必须根据您的需要调整new_width和height值。