您的位置 首页 php

php网站怎么修改图片

主要还是用到php中的GD库中的函数

upload_image.php,主要是一个上传控件,用来选择图片

<html>

<head>

<title></title>

<style type=”text/css”></style>

</head>

<body>

<form action=”check_image.php” method=”post” enctype=”multipart/form-data”>

<table>

<tr>

< td >Your username</td>

<td><input type=”text” name=”username” /></td>

</tr>

<tr>

<td>Upload image*</td>

<td><input type=”file” name=”uploadfile”/></td>

</tr>

<tr>

<td colspan=”2″>

<small><em> * Acceptable image formats include: GIF, jpg /JPEG and PNG.</em></small>

</td>

</tr>

<tr>

<td>Image Caption</td>

<td><input type=”text” name=”caption”/></td>

</tr>

<tr>

<td colspan=”2″ style=”text-align:center;”>

<input type=”submit” name=”submit” value=”Upload” />

</td>

</tr>

</table>

</form>

</body>

</html>

然后是上传和处理图片的逻辑check_image.php

<?php

//修改图片效果

$db = mysql_connect(‘localhost’,’root’,’Ctrip07185419′) or die(‘can not connect to database’);

mysql_select_db(‘moviesite’,$db) or die(mysql_error($db));

//上传文件的路径

$dir = ‘D:\Serious\phpdev\test\images’;

//upload_image.php页面传递过来的参数,如果是上传图片

if($_POST[‘submit’] == ‘Upload’)

{

if($_FILES[‘uploadfile’][‘error’] != UPLOAD_ERR_OK)

{

switch($_FILES[‘uploadfiel’][‘error’])

{

case UPLOAD_ERR_INI_SIZE:

die(‘The uploaded file exceeds the upload_max_filesize directive’);

break ;

case UPLOAD_ERR_FORM_SIZE:

die(‘The upload file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form’);

break;

case UPLOAD_ERR_PARTIAL:

die(‘The uploaded file was only partially uploaded’);

break;

case UPLOAD_ERR_NO_FILE:

die(‘No file was uploaded’);

break;

case UPLOAD_ERR_NO_TMP_DIR:

die(‘The server is missing a temporary folder’);

break;

case UPLOAD_ERR_CANT_WRITE:

die(‘The server fail to write the uploaded file to the disk’);

break;

case UPLOAD_ERR_EXTENSION:

die(‘The upload stopped by extension’);

break;

}

}

$image_caption = $_POST[‘caption’];

$image_username = $_POST[‘username’];

$image_date = date(‘Y-m-d’);

list($width,$height,$type,$attr) = getimagesize($_FILES[‘uploadfile’][‘tmp_name’]);

$error = ‘The file you upload is not a supported filetype’;

switch($type)

{

case IMAGETYPE_GIF:

$image = imagecreatefromgif($_FILES[‘uploadfile’][‘tmp_name’]) or die($error);

break;

case IMAGETYPE_JPEG:

$image = imagecreatefromjpeg($_FILES[‘uploadfile’][‘tmp_name’]) or die($error);

break;

case IMAGETYPE_PNG:

$image = imagecreatefrompng($_FILES[‘uploadfile’][‘tmp_name’]) or die($error);

break;

default:

break;

}

$query = ‘insert into images(image_caption,image_username,image_date) values(“‘.$image_caption.'” , “‘.$image_username.'”,”‘.$image_date.'”)’;

$result = mysql_query($query,$db) or die(mysql_error($db));

$last_id = mysql_insert_id();

// $imagename = $last_id.’.jpg’;

// imagejpeg($image,$dir.’/’.$imagename);

// imagedestroy($image);

$image_id = $last_id;

imagejpeg($image , $dir.’/’.$image_id.’.jpg’);

imagedestroy($image);

}

else //如果图片已经上传,则从数据库中取图片名字

{

$query = ‘select image_id,image_caption,image_username,image_date from images where image_id=’.$_POST[‘id’];

$result = mysql_query($query,$db) or die(mysql_error($db));

extract(mysql_fetch_assoc($result));

list($width,$height,$type,$attr) = getimagesize($dir.’/’.$image_id.’.jpg’);

}

//如果是保存图片

if($_POST[‘submit’] == ‘Save’)

{

if(isset($_POST[‘id’]) && ctype_digit($_POST[‘id’]) && file_exists($dir.’/’.$_POST[‘id’].’.jpg’))

{

$image = imagecreatefromjpeg($dir.’/’.$_POST[‘id’].’.jpg’);

}

else

{

die(‘invalid image specified’);

}

$effect = (isset($_POST[‘effect’])) ? $_POST[‘effect’] : -1;

switch($effect)

{

case IMG_FILTER_NEGATE:

imagefilter($image , IMG_FILTER_NEGATE); //将图像中所有颜色反转

break;

case IMG_FILTER_GRAYSCALE:

imagefilter($image , IMG_FILTER_GRAYSCALE); //将图像转换为灰度的

break;

case IMG_FILTER_EMBOSS:

imagefilter($image , IMG_FILTER_EMBOSS); //使图像浮雕化

break;

case IMG_FILTER_GAUSSIAN_BLUR:

imagefilter($image , IMG_FILTER_GAUSSIAN_BLUR); //用高斯算法模糊图像

break;

}

imagejpeg($image , $dir.’/’.$_POST[‘id’].’.jpg’ , 100);

?>

<html>

<head>

<title>Here is your pic!</title>

</head>

<body>

<h1>Your image has been saved!</h1>

<img src=”images/<?php%20echo%20$_POST[‘id’];?>.jpg” alt=”” />

</body>

</html>

<?php

}

else

{

?>

<html>

<head>

<title>Here is your pic!</title>

</head>

<body>

<h1>So how does it feel to be famous?</h1>

<p>Here is the picture you just uploaded to your servers:</p>

<!–<img src=”images/<?php%20echo%20$imagename;?>” alt=”” style=”float:left;” />–>

</body>

</html>

<?php

if($_POST[‘submit’] == ‘Upload’)

{

$imagename = ‘images/’.$image_id.’.jpg’;

}

else

{

$imagename = ‘image_effect.php?id=’.$image_id.’&e=’.$_POST[‘effect’];

}

?>

<img src=”<?php%20echo%20$imagename;?>” style=”float:left;” alt=”” />

<table>

<tr>

<td>Image save as:</td>

<td><?php $image_id?></td>

</tr>

<tr>

<td>Height:</td>

<td><?php echo $height;?></td>

</tr>

<tr>

<td>Widht:</td>

<td><?php echo $width;?></td>

</tr>

<tr>

<td>Upload date:</td>

<td><?php echo $image_date;?></td>

</tr>

</table>

<p>You may apply a special effect to your image from the list of option below.

Note:saving an image with any of the filters applied <em>can be undone</em>

</p>

<form action=”<?php echo $_SERVER[‘PHP_SELF’];?>” method=”post”>

<div>

<input type=”hidden” name=”id” value=”<?php echo $image_id;?>”/>

<select name=”effect” id=””>

<option value=”-1″>None</option>

<?php

echo ‘<option value=”‘.IMG_FILTER_GRAYSCALE.'” ‘;

if(isset($_POST[‘effect’]) && $_POST[‘effect’] == IMG_FILTER_GRAYSCALE)

{

echo ‘selected=”selected”‘;

}

echo ‘ >Black and white</option>’;

echo ‘<option value=”‘.IMG_FILTER_GAUSSIAN_BLUR.'”‘;

if(isset($_POST[‘effect’]) && $_POST[‘effect’] == IMG_FILTER_GAUSSIAN_BLUR)

{

echo ‘ selected=”selected”‘;

}

echo ‘>Blur</option>’;

echo ‘<option value=”‘.IMG_FILTER_EMBOSS.'”‘;

if(isset($_POST[‘effect’]) && $_POST[‘effect’] == IMG_FILTER_EMBOSS)

{

echo ‘selected=”selected”‘;

}

echo ‘>Emboss</option>’;

echo ‘<option value=”‘.IMG_FILTER_NEGATE.'”‘;

if(isset($_POST[‘effect’]) && $_POST[‘effect’] == IMG_FILTER_NEGATE)

{

echo ‘selected=”selected”‘;

}

echo ‘>Negative</option>’;

?>

</select><br />

<input type=”submit” value=”Preview” name=”submit” /><br />

<input type=”submit” value=”Save” name=”submit” />

</div>

</form>

<?php

}

?>

最后是一个预览效果的页面image_effect.php

<?php

$dir = ‘D:\Serious\phpdev\test\images’;

if(isset($_GET[‘id’]) && ctype_digit($_GET[‘id’]) && file_exists($dir.’/’.$_GET[‘id’].’.jpg’))

{

$image = imagecreatefromjpeg($dir.’/’.$_GET[‘id’].’.jpg’);

}

else

{

die(‘invalid image specified’);

}

$effect = (isset($_GET[‘e’])) ? $_GET[‘e’] : -1;

switch($effect)

{

case IMG_FILTER_NEGATE:

imagefilter($image , IMG_FILTER_NEGATE);

break;

case IMG_FILTER_GRAYSCALE:

imagefilter($image , IMG_FILTER_GRAYSCALE);

break;

case IMG_FILTER_EMBOSS:

imagefilter($image , IMG_FILTER_EMBOSS);

break;

case IMG_FILTER_GAUSSIAN_BLUR:

imagefilter($image , IMG_FILTER_GAUSSIAN_BLUR);

break;

}

header(‘Content-Type:image/jpeg’);

imagejpeg($image , ” , 100);

?>

当使用imagefilter方法处理图片之后会把图片输出到页面,这里要注意imagejpeg方法的第二个参数是空字符串,这样它就不会写入到硬盘中了,如果第二个参数设置了会覆盖原有的图片,这样可以让用户在保存图片之前随意的预览效果,如下:

header(‘Content-Type:image/jpeg’);

imagejpeg($image , ” , 100);

在check_image.php中有调用到类似的方法,但是这里指定了第二个参数,就是用来保存图片的:

imagejpeg($image , $dir.’/’.$_POST[‘id’].’.jpg’ , 100);

php中处理图片的方法:

IMG_FILTER_NEGATE:将图像中所有颜色反转。

IMG_FILTER_GRAYSCALE:将图像转换为灰度的。

IMG_FILTER_BRIGHTNESS:改变图像的亮度。用 arg1 设定亮度级别。

IMG_FILTER_CONTRAST:改变图像的对比度。用 arg1 设定对比度级别。

IMG_FILTER_COLORIZE:与 IMG_FILTER_GRAYSCALE 类似,不过可以指定颜色。用 arg1,arg2 和 arg3 分别指定 red,blue 和 green。每种颜色范围是 0 到 255。

IMG_FILTER_EDGEDETECT:用边缘检测来突出图像的边缘。

IMG_FILTER_EMBOSS:使图像浮雕化。

IMG_FILTER_GAUSSIAN_BLUR:用高斯算法模糊图像。

IMG_FILTER_SELECTIVE_BLUR:模糊图像。

IMG_FILTER_MEAN_REMOVAL:用平均移除法来达到轮廓效果。

IMG_FILTER_SMOOTH:使图像更柔滑。用 arg1 设定柔滑级别。

以上就是php网站怎么修改图片的详细内容,更多请关注其它相关文章!

更多技巧请《转发 + 关注》哦!

文章来源:智云一二三科技

文章标题:php网站怎么修改图片

文章地址:https://www.zhihuclub.com/78510.shtml

关于作者: 智云科技

热门文章

网站地图