<?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 } ?> |