<?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' ;
//设置环境变量
putenv( 'GDFONTPATH=' . 'C:\Windows\Fonts' );
$font = "arial" ;
//upload_image.php页面传递过来的参数,如果是上传图片
if ( $_POST [ 'submit' ] == 'Upload' )
{
if ( $_FILES [ 'uploadfile' ][ 'error' ] != UPLOAD_ERR_OK)
{
switch ( $_FILES [ 'uploadfile' ][ '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 ;
}
if (isset( $_POST [ 'emb_caption' ]))
{
imagettftext( $image , 12 , 0 , 20 , 20 , 0 , $font , $image_caption );
}
if (isset( $_POST [ 'emb_logo' ]))
{
//获取水印图片的尺寸并创建水印
list( $wmk_width , $wmk_height ) = getimagesize ( 'images/logo.png' );
$x = ( $width - $wmk_width ) / 2;
$y = ( $height - $wmk_height )/2;
$wmk = imagecreatefrompng( 'images/logo.png' );
//把水印图片和原图片合并在一起
imagecopymerge( $image , $wmk , $x , $y , 0 , 0 , $wmk_width , $wmk_height , 20);
//清除水印图片
imagedestroy( $wmk );
}
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' ];
if (isset( $_POST [ 'emb_caption' ]))
{
$imagename .= '&capt=' .urlencode( $image_caption );
}
if (isset( $_POST [ 'emb_logo' ]))
{
$imagename .= '&logo=1' ;
}
}
?>
<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;?>" />
Filter:<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 />
<?php
echo '<input type="checkbox" name="emb_caption"' ;
if (isset( $_POST [ 'emb_caption' ]))
{
echo ' checked="checked"' ;
}
echo ' />Embed caption in image?' ;
echo '<br />' ;
//添加水印选项
echo '<input type="checkbox" name="emb_logo" ' ;
if (isset( $_POST [ 'emb_logo' ]))
{
echo 'checked="checked"' ;
}
echo ' />Embed watermarked logo in image?' ;
?>
<input type= "submit" value= "Preview" name= "submit" /><br /><br />
<input type= "submit" value= "Save" name= "submit" />
</div>
</form>
<?php
}
?>
|