最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

php网站怎么修改图片

来源:懂视网 责编:小采 时间:2020-11-27 14:18:53
文档

php网站怎么修改图片

php网站怎么修改图片:主要还是用到php中的GD库中的函数upload_image.php,主要是一个上传控件,用来选择图片<html> <head> <title></title> <style type="text/css"></style> </h
推荐度:
导读php网站怎么修改图片:主要还是用到php中的GD库中的函数upload_image.php,主要是一个上传控件,用来选择图片<html> <head> <title></title> <style type="text/css"></style> </h

主要还是用到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 echo $_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 echo $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 echo $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网站怎么修改图片:主要还是用到php中的GD库中的函数upload_image.php,主要是一个上传控件,用来选择图片<html> <head> <title></title> <style type="text/css"></style> </h
推荐度:
标签: 图片 修改 网站
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top