如何打开图像流?

时间:2013-02-06 11:45:04

标签: php image

我有一个 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>

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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