0

我有一个javascript strict PHP 函数,可以让我裁剪图像。

我的问题是生成的图像始终是与裁剪场大小相同的黑色图像,它不包含原始图像的裁剪部分。

我的一个朋友说问题是不加载流图像,但我不确定他的意思,也没有预设任何解决方案来解决我的问题。有谁知道该怎么做?

这是我到目前为止所拥有的:

if(isset($_POST['decupata'])){
    $new_width=$_POST['w'];//width of the crop field
    $new_height=$_POST['h'];//height of the crop field
    $x=$_POST['x1']; // x of crop field
    $y=$_POST['y1'];// y of crop field
    $num=$_POST['nume'];//name of the original picture


    $old_width=imagesx("../upload/original/".$num);
    $old_height=imagesy("../upload/original/".$num);

    $min_rand=rand(0,1000);
    $max_rand=rand(100000000000,10000000000000000);
    $new_num=rand($min_rand,$max_rand);

    $new_image = imagecreatetruecolor($new_width, $new_height);
    $image = imagecreatefromjpeg("../upload/original/".$num);
    imagecopyresampled($new_image, $image, 0, 0, $x, $y, $new_width, $new_height, $old_width, $old_height);
    imagejpeg($new_image,"../upload/".$new_num.$num,100);
    header('Location:lista_imagini.php');
}
<form action="<?php $_PHP_SELF ?>" method="post" enctype="multipart/form-data" id="coords">
    <input type="text" size="4" id="x1" name="x1"  />
    <input type="text" size="4" id="y1" name="y1"  />   
    <input type="text" size="4" id="x2" name="x2"  />
    <input type="text" size="4" id="y2" name="y2"  />
    <input type="text" size="4" id="w" name="w"  value="<?php echo $width;?>" />
    <input type="text" size="4" id="h" name="h"  value="<?php echo $height;?>" />
    <input type="text" size="4" id="nume" name="nume"  value="<?php echo $num;?>" />
    <input type="text" size="4"  value="<?php echo $old_width;?>" />



    <input type="submit" name="decupata" value="Adauga imaginea" class="buton">
</form>
4

2 回答 2

1

您从 url 而不是从创建的图像中获取 imagesy 和 imagex 。首先从此文件中创建图像,例如 imagecreatefromjpeg

于 2013-02-06T11:52:19.447 回答
0

我认为这个问题与加载图像有关。你应该检查路径和目录。根据您的平台注意目录。例如 '\' 和 '/' 在 Linux 、 Unix 和不同版本的 windows 中是不同的

于 2013-02-06T11:52:29.027 回答