首页 > php教程 > php手册 > 正文

PHP根据图片制作缩略图

php中文网
发布: 2016-06-06 19:46:46
原创
1568人浏览过

php中制作缩略图的方法也很简单,是用imagecopyresampled方法根据源图制作一个小一点的图片,来看代码check_image_addthumbs.php ? php // 修改图片效果 $db = mysql_connect ('localhost','root','Ctrip07185419') or die ('can not connect to database' )

php中制作缩略图的方法也很简单,是用imagecopyresampled方法根据源图制作一个小一点的图片,来看代码check_image_addthumbs.php

<?<span>php 
</span><span>//</span><span>修改图片效果</span>
<span>$db</span> = <span>mysql_connect</span>('localhost','root','Ctrip07185419') or <span>die</span>('can not connect to database'<span>);
</span><span>mysql_select_db</span>('moviesite',<span>$db</span>) or <span>die</span>(<span>mysql_error</span>(<span>$db</span><span>));
</span><span>//</span><span>上传文件的路径</span>
<span>$dir</span> = 'D:\Serious\phpdev\test\images'<span>;
</span><span>//</span><span>缩略图的路径</span>
<span>$thumbdir</span> = 'D:\Serious\phpdev\test\images\thumbs'<span>;
</span><span>//</span><span>设置环境变量</span>
<span>putenv</span>('GDFONTPATH='.'C:\Windows\Fonts'<span>);
</span><span>$font</span> = "arial"<span>;

</span><span>//</span><span>upload_image.php页面传递过来的参数,如果是上传图片</span>
<span>if</span>(<span>$_POST</span>['submit'] == 'Upload'<span>)
{
    </span><span>if</span>(<span>$_FILES</span>['uploadfile']['error'] !=<span> UPLOAD_ERR_OK)
    {
        </span><span>switch</span>(<span>$_FILES</span>['uploadfile']['error'<span>])
        {
            </span><span>case</span> UPLOAD_ERR_INI_SIZE:
                <span>die</span>('The uploaded file exceeds the upload_max_filesize directive'<span>);
            </span><span>break</span><span>;
            </span><span>case</span> UPLOAD_ERR_FORM_SIZE:
                <span>die</span>('The upload file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form'<span>);
            </span><span>break</span><span>;
            </span><span>case</span> UPLOAD_ERR_PARTIAL:
                <span>die</span>('The uploaded file was only partially uploaded'<span>);
            </span><span>break</span><span>;
            </span><span>case</span> UPLOAD_ERR_NO_FILE:
                <span>die</span>('No file was uploaded'<span>);
            </span><span>break</span><span>;
            </span><span>case</span> UPLOAD_ERR_NO_TMP_DIR:
                <span>die</span>('The server is missing a temporary folder'<span>);
            </span><span>break</span><span>;    
            </span><span>case</span> UPLOAD_ERR_CANT_WRITE:
                <span>die</span>('The server fail to write the uploaded file to the disk'<span>);
            </span><span>break</span><span>;        
            </span><span>case</span> UPLOAD_ERR_EXTENSION:
                <span>die</span>('The upload stopped by extension'<span>);
            </span><span>break</span><span>;                
        }
    }
    </span><span>$image_caption</span> = <span>$_POST</span>['caption'<span>];
    </span><span>$image_username</span> = <span>$_POST</span>['username'<span>];
    </span><span>$image_date</span> = <span>date</span>('Y-m-d'<span>);
    </span><span>list</span>(<span>$width</span>,<span>$height</span>,<span>$type</span>,<span>$attr</span>) = <span>getimagesize</span>(<span>$_FILES</span>['uploadfile']['tmp_name'<span>]);
    </span><span>$error</span> = 'The file you upload is not a supported filetype'<span>;
    </span><span>switch</span>(<span>$type</span><span>)
    {
        </span><span>case</span> IMAGETYPE_GIF:
            <span>$image</span> = imagecreatefromgif(<span>$_FILES</span>['uploadfile']['tmp_name']) or <span>die</span>(<span>$error</span><span>);
        </span><span>break</span><span>;
        </span><span>case</span> IMAGETYPE_JPEG:
            <span>$image</span> = imagecreatefromjpeg(<span>$_FILES</span>['uploadfile']['tmp_name']) or <span>die</span>(<span>$error</span><span>);
        </span><span>break</span><span>;
        </span><span>case</span> IMAGETYPE_PNG:
            <span>$image</span> = imagecreatefrompng(<span>$_FILES</span>['uploadfile']['tmp_name']) or <span>die</span>(<span>$error</span><span>);
        </span><span>break</span><span>;
        </span><span>default</span>:
        <span>break</span><span>;
    }
    </span><span>$query</span> = 'insert into images(image_caption,image_username,image_date) values("'.<span>$image_caption</span>.'" , "'.<span>$image_username</span>.'","'.<span>$image_date</span>.'")'<span>;
    </span><span>$result</span> = <span>mysql_query</span>(<span>$query</span>,<span>$db</span>) or <span>die</span>(<span>mysql_error</span>(<span>$db</span><span>));
    </span><span>$last_id</span> = <span>mysql_insert_id</span><span>();
    
    </span><span>//</span><span> $imagename = $last_id.'.jpg';
    // imagejpeg($image,$dir.'/'.$imagename);
    // imagedestroy($image);</span>
    
    <span>$image_id</span> = <span>$last_id</span><span>;
    imagejpeg(</span><span>$image</span> , <span>$dir</span>.'/'.<span>$image_id</span>.'.jpg'<span>);
    imagedestroy(</span><span>$image</span><span>);
}
</span><span>else</span>  <span>//</span><span>如果图片已经上传,则从数据库中取图片名字</span>
<span>{
    </span><span>$query</span> = 'select image_id,image_caption,image_username,image_date from images where image_id='.<span>$_POST</span>['id'<span>];
    </span><span>$result</span> = <span>mysql_query</span>(<span>$query</span>,<span>$db</span>) or <span>die</span>(<span>mysql_error</span>(<span>$db</span><span>));
    </span><span>extract</span>(<span>mysql_fetch_assoc</span>(<span>$result</span><span>));
    </span><span>list</span>(<span>$width</span>,<span>$height</span>,<span>$type</span>,<span>$attr</span>) = <span>getimagesize</span>(<span>$dir</span>.'/'.<span>$image_id</span>.'.jpg'<span>);
}

</span><span>//</span><span>如果是保存图片</span>
<span>if</span>(<span>$_POST</span>['submit'] == 'Save'<span>)
{
    </span><span>if</span>(<span>isset</span>(<span>$_POST</span>['id']) && <span>ctype_digit</span>(<span>$_POST</span>['id']) && <span>file_exists</span>(<span>$dir</span>.'/'.<span>$_POST</span>['id'].'.jpg'<span>))
    {
        </span><span>$image</span> = imagecreatefromjpeg(<span>$dir</span>.'/'.<span>$_POST</span>['id'].'.jpg'<span>);
    }
    </span><span>else</span><span>
    {
        </span><span>die</span>('invalid image specified'<span>);
    }
    </span><span>$effect</span> = (<span>isset</span>(<span>$_POST</span>['effect'])) ? <span>$_POST</span>['effect'] : -1<span>;
    </span><span>switch</span>(<span>$effect</span><span>)
    {
        </span><span>case</span> IMG_FILTER_NEGATE:<span>
            imagefilter(</span><span>$image</span> , IMG_FILTER_NEGATE);     <span>//</span><span>将图像中所有颜色反转</span>
        <span>break</span><span>;
        </span><span>case</span> IMG_FILTER_GRAYSCALE:<span>
            imagefilter(</span><span>$image</span> , IMG_FILTER_GRAYSCALE);  <span>//</span><span>将图像转换为灰度的</span>
        <span>break</span><span>;
        </span><span>case</span> IMG_FILTER_EMBOSS:<span>
            imagefilter(</span><span>$image</span> , IMG_FILTER_EMBOSS);     <span>//</span><span>使图像浮雕化</span>
        <span>break</span><span>;
        </span><span>case</span> IMG_FILTER_GAUSSIAN_BLUR:<span>
            imagefilter(</span><span>$image</span> , IMG_FILTER_GAUSSIAN_BLUR); <span>//</span><span>用高斯算法模糊图像</span>
        <span>break</span><span>;    
    }
    
    </span><span>if</span>(<span>isset</span>(<span>$_POST</span>['emb_caption'<span>]))
    {
        imagettftext(</span><span>$image</span> , 12 , 0 , 20 , 20 , 0 , <span>$font</span> , <span>$image_caption</span><span>);
    }
    
    </span><span>$thumb_width</span> = <span>$width</span> * 0.10<span>;
    </span><span>$thumb_height</span> = <span>$height</span> * 0.10<span>;
                   
    </span><span>//</span><span>创建一个缩略图</span>
    <span>$thumb</span> = imagecreatetruecolor(<span>$thumb_width</span>, <span>$thumb_height</span><span>);
    imagecopyresampled(</span><span>$thumb</span>, <span>$image</span>, 0, 0, 0, 0, <span>$thumb_width</span>, <span>$thumb_height</span>,    <span>$width</span>, <span>$height</span><span>);
    </span><span>//</span><span>保存原图</span>
    imagejpeg(<span>$image</span>, <span>$dir</span> . '/' . <span>$_POST</span>['id'] . '.jpg', 100<span>);
    </span><span>//</span><span>保存缩略图</span>
    imagejpeg(<span>$thumb</span>, <span>$thumbdir</span> . '/' . <span>$_POST</span>['id'] . '.jpg', 100<span>);
    imagedestroy(</span><span>$thumb</span><span>);
    </span>?>
    <html>
        <head>
            <title>Here is your pic!</title>
        </head>
        <body>
            <h1>Your image has been saved!</h1>
            @@##@@$_POST</span>['id'];?>.jpg" alt="" />
        </body>
    </html>
<?<span>php 
}
</span><span>else</span><span>
{
</span>?>
    <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>
            <!--@@##@@$imagename</span>;?>" alt="" style="float:left;" />-->
        </body>
    </html>
    <?<span>php
        </span><span>if</span>(<span>$_POST</span>['submit'] == 'Upload'<span>)
        {
            </span><span>$imagename</span> = 'images/'.<span>$image_id</span>.'.jpg'<span>;
        }
        </span><span>else</span><span>
        {
            </span><span>$imagename</span> = 'image_effect.php?id='.<span>$image_id</span>.'&e='.<span>$_POST</span>['effect'<span>];
            </span><span>if</span>(<span>isset</span>(<span>$_POST</span>['emb_caption'<span>]))
            {
                </span><span>$imagename</span> .= '&capt='.<span>urlencode</span>(<span>$image_caption</span><span>);
            }
        }
    </span>?>
    @@##@@$imagename</span>;?>" style="float:left;" alt="" />
    <table>
        <tr>
            <td>Image save <span>as</span>:</td>
            <td><?php <span>$image_id</span>?></td>
        </tr>
        <tr>
            <td>Height:</td>
            <td><?php <span>echo</span> <span>$height</span>;?></td>
        </tr>
        <tr>
            <td>Widht:</td>
            <td><?php <span>echo</span> <span>$width</span>;?></td>
        </tr>
        <tr>
            <td>Upload <span>date</span>:</td>
            <td><?php <span>echo</span> <span>$image_date</span>;?></td>
        </tr>
    </table>
    <p>You may apply a special effect to your image from the <span>list</span> of option below.<span>
    Note</span>:saving an image with any of the filters applied <em>can be undone</em>
    </p>
    <form action="<?php echo <span>$_SERVER</span>['PHP_SELF'];?>" method="post">
        <div>
            <input type="hidden" name="id" value="<?php echo <span>$image_id</span>;?>"/><span>
            Filter</span>:<select name="effect" id="">
                <option value="-1">None</option>
                <?<span>php 
                    </span><span>echo</span> '<option value="'.IMG_FILTER_GRAYSCALE.'" '<span>;
                    </span><span>if</span>(<span>isset</span>(<span>$_POST</span>['effect']) && <span>$_POST</span>['effect'] ==<span> IMG_FILTER_GRAYSCALE)
                    {
                        </span><span>echo</span> 'selected="selected"'<span>;
                    }
                    </span><span>echo</span> ' >Black and white</option>'<span>;
                    
                    </span><span>echo</span> '<option value="'.IMG_FILTER_GAUSSIAN_BLUR.'"'<span>;
                    </span><span>if</span>(<span>isset</span>(<span>$_POST</span>['effect']) && <span>$_POST</span>['effect'] ==<span> IMG_FILTER_GAUSSIAN_BLUR)
                    {
                        </span><span>echo</span> ' selected="selected"'<span>;
                    }
                    </span><span>echo</span> '>Blur</option>'<span>;
                    
                    </span><span>echo</span> '<option value="'.IMG_FILTER_EMBOSS.'"'<span>;
                    </span><span>if</span>(<span>isset</span>(<span>$_POST</span>['effect']) && <span>$_POST</span>['effect'] ==<span> IMG_FILTER_EMBOSS)
                    {
                        </span><span>echo</span> 'selected="selected"'<span>;
                    }
                    </span><span>echo</span> '>Emboss</option>'<span>;
                    
                    </span><span>echo</span> '<option value="'.IMG_FILTER_NEGATE.'"'<span>;
                    </span><span>if</span>(<span>isset</span>(<span>$_POST</span>['effect']) && <span>$_POST</span>['effect'] ==<span> IMG_FILTER_NEGATE)
                    {
                        </span><span>echo</span> 'selected="selected"'<span>;
                    }
                    </span><span>echo</span> '>Negative</option>'<span>;
                </span>?>
            </select><br />
            <?<span>php 
                </span><span>echo</span> '<input type="checkbox" name="emb_caption"'<span>;
                </span><span>if</span>(<span>isset</span>(<span>$_POST</span>['emb_caption'<span>]))
                {
                    </span><span>echo</span> ' checked="checked"'<span>;
                }
                </span><span>echo</span> ' />Embed caption in image?'<span>;
            </span>?>
            <input type="submit" value="Preview" name="submit" /><br /><br />
            <input type="submit" value="Save" name="submit" />
            
        </div>
    </form>
<?<span>php 
}
</span>?>
登录后复制

缩略图放在D:\Serious\phpdev\test\images\thumbs路径下面,这里我们添加了一个gallery.php文件来陈列所有的缩略图,代码如下:

<?<span>php 
</span><span>$db</span> = <span>mysql_connect</span>('localhost','root','Ctrip07185419') or <span>die</span>('can not connect to database'<span>);
</span><span>mysql_select_db</span>('moviesite',<span>$db</span>) or <span>die</span>(<span>mysql_error</span>(<span>$db</span><span>));

</span><span>$dir</span> = 'images'<span>;
</span><span>$thumbdir</span> = <span>$dir</span>.'/thumbs'<span>;
</span>?>
<html>
    <head>
        <title>Welcome to our Photo Gallery</title>
        <style type="text/css"><span>
            th{  background</span>-color:<span>#</span><span>999; }</span>
            .odd_row { background-color:<span>#</span><span>EEE;}</span>
            .even_row {background-color:<span>#</span><span>FFF;}</span>
        </style>
    </head>
    <body>
        <p>Click on any image to see it full sized.</p>
                    <div class="aritcle_card">
                        <a class="aritcle_card_img" href="/xiazai/code/10068">
                            <img src="https://img.php.cn/upload/webcode/000/000/002/176071140242516.png" alt="奥硕企业网站管理系统终身免费版精简版1.0 build 090625">
                        </a>
                        <div class="aritcle_card_info">
                            <a href="/xiazai/code/10068">奥硕企业网站管理系统终身免费版精简版1.0 build 090625</a>
                            <p>奥硕企业网站管理系统具有一下特色功能1、双语双模(中英文采用单独模板设计,可制作中英文不同样式的网站)2、在线编辑JS动态菜单支持下拉效果,同时生成中文,英文,静态3个JS菜单3、在线制作并调用FLASH展示动画4、自动生成缩略图,可以自由设置宽高5、图片批量加水印,可以自由设置字体,大小,样式,水印位置(同时支持文字或图片类型水印)6、强大的标签式数据调用,可以调用(新闻,产品,下载,招聘)支持</p>
                            <div class="">
                                <img src="/static/images/card_xiazai.png" alt="奥硕企业网站管理系统终身免费版精简版1.0 build 090625">
                                <span>0</span>
                            </div>
                        </div>
                        <a href="/xiazai/code/10068" class="aritcle_card_btn">
                            <span>查看详情</span>
                            <img src="/static/images/cardxiayige-3.png" alt="奥硕企业网站管理系统终身免费版精简版1.0 build 090625">
                        </a>
                    </div>
                
        <table style="width:100%"> 
            <tr>
                <th>Image</th>
                <th>Caption</th>
                <th>Uploaded By</th>
                <th><span>Date</span> uploaded</th>
            </tr>
            <?<span>php 
            </span><span>$result</span> = <span>mysql_query</span>('select * from images') or <span>die</span>(<span>mysql_error</span>(<span>$db</span><span>));
            </span><span>$odd</span> = <span>true</span><span>;
            </span><span>while</span>(<span>$row</span> = <span>mysql_fetch_assoc</span>(<span>$result</span><span>))
            {
                </span><span>echo</span> (<span>$odd</span> == <span>true</span>) ? '<tr class="odd_row">' : '<tr class="even_row">'<span>;
                </span><span>$odd</span> = !<span>$odd</span><span>;
                </span><span>extract</span>(<span>$row</span><span>);
                </span><span>echo</span> '<td><a href="' . <span>$dir</span> . '/' . <span>$image_id</span>.'.jpg">'<span>;
                </span><span>echo</span> '@@##@@$thumbdir</span> . '/' . <span>$image_id</span> . '.jpg" alt="" />'<span>;
                </span><span>echo</span> '</a></td>'<span>;
                </span><span>echo</span> '<td>'.<span>$image_caption</span>.'</td>'<span>;
                </span><span>echo</span> '<td>'.<span>$image_username</span>.'</td>'<span>;
                </span><span>echo</span> '<td>'.<span>$image_date</span>.'</td>'<span>;
                </span><span>echo</span> '</tr>'<span>;
            }
            
            </span>?>
        </table>
    </body>
</html>
登录后复制

来看看最后显示缩略图的效果:

立即学习PHP免费学习笔记(深入)”;

    <span>$thumb_width</span> = <span>$width</span> * 0.10<span>;
    </span><span>$thumb_height</span> = <span>$height</span> * 0.10<span>;
                   
    </span><span>//</span><span>创建一个缩略图</span>
    <span>$thumb</span> = imagecreatetruecolor(<span>$thumb_width</span>, <span>$thumb_height</span><span>);
    imagecopyresampled(</span><span>$thumb</span>, <span>$image</span>, 0, 0, 0, 0, <span>$thumb_width</span>, <span>$thumb_height</span>,    <span>$width</span>, <span>$height</span><span>);
    </span><span>//</span><span>保存原图</span>
    imagejpeg(<span>$image</span>, <span>$dir</span> . '/' . <span>$_POST</span>['id'] . '.jpg', 100<span>);
    </span><span>//</span><span>保存缩略图</span>
    imagejpeg(<span>$thumb</span>, <span>$thumbdir</span> . '/' . <span>$_POST</span>['id'] . '.jpg', 100<span>);
    imagedestroy(</span><span>$thumb</span>);
登录后复制
%0A

%0A

%E6%88%91%E4%BB%AC%E8%AE%BE%E7%BD%AE%E7%BC%A9%E7%95%A5%E5%9B%BE%E7%9A%84%E9%95%BF%E5%BA%A6%E6%98%AF%E5%8E%9F%E6%9D%A5%E9%95%BF%E5%BA%A6%E7%9A%8410%%EF%BC%8C%E5%AE%BD%E5%BA%A6%E4%B9%9F%E6%98%AF%E5%8E%9F%E6%9D%A5%E5%AE%BD%E5%BA%A6%E7%9A%8410%%EF%BC%8C%E6%B3%A8%E6%84%8F%E4%BF%9D%E6%8C%81%E4%B8%80%E8%87%B4%EF%BC%8C%E5%90%A6%E5%88%99%E5%9B%BE%E7%89%87%E4%BC%9A%E5%87%BA%E7%8E%B0%E5%A4%B1%E7%9C%9F%EF%BC%8C%E5%BD%93%E7%84%B6%E8%BF%99%E4%B8%AA%E5%8F%82%E6%95%B0%E5%A6%82%E6%9E%9C%E8%AE%BE%E7%BD%AE%E6%88%90%E5%A4%A7%E4%BA%8E1%E7%9A%84%E6%95%B4%E6%95%B0%EF%BC%8C%E5%9B%BE%E7%89%87%E5%B0%B1%E4%BC%9A%E6%94%BE%E5%A4%A7%E3%80%82

%0A

%C2%A0

%0A

%0A%0APHP根据图片制作缩略图PHP根据图片制作缩略图

相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号