我有一个 javascript scrict 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>
答案 0 :(得分:1)
您从url而不是从创建的图像中获取imagesy和imagex。首先从此文件创建图像,如imagecreatefromjpeg
答案 1 :(得分:0)
我认为这个问题与加载图片有关。 你应该检查路径和目录。 根据您的平台注意目录。 例如'\'和'/'在Linux,Unix和不同版本的Windows中是不同的