一个图片缩略图方法

/*
 *   缩略图
 * @param background 原图
 * @param width 缩略图的宽度
 * @param height 缩略图的高度
 * @param newfile 新图片的名称
 * @param object $geo_info  翻转角度   由函数geo_info 获得 主要针对苹果手机上传图片问题
 */
function thumb($background, $width, $height, $newfile, $geo_info=‘‘) {
    if( isWap() && isset($geo_info[‘orientation‘])){  //手机上传并且图片翻转
        $orientation = $geo_info[‘orientation‘];

        if($orientation == 1){
            $degrees = 0;
        }else if($orientation == 3){
            $degrees = 180;
        }else if($orientation == 6){
            $degrees = 270;
        }else if($orientation == 8){
            $degrees = 90;
        }
    }
    //按比例获取缩略图的宽高
    $temp = getimagesize($background);
    $s_type = $temp[‘mime‘];
    $s_w = $temp[0];
    $s_h = $temp[1];

    //90度的奇数倍时要宽高互换
    if($orientation == 6 || $orientation==8){
        $tmp_th = $s_w;
        $s_w = $s_h;
        $s_h = $tmp_th;
    }

    if ($width && ($s_w < $s_h)) {
        $width = ($height / $s_h) * $s_w;
    } else {
        $height = ($width / $s_w) * $s_h;
    }

    $new = imagecreatetruecolor($width, $height);
    switch($s_type){
        case ‘image/png‘ :
            $img = imagecreatefrompng($background);
            break;
        case ‘image/gif‘:
            $img = imagecreatefromgif($background);
            break;
        case ‘image/jpg‘:
            $img = imagecreatefromjpeg($background);
            break;
        case ‘image/jpeg‘:
            $img = imagecreatefromjpeg($background);
            break;
        default :
            return false;
    }
    if($degrees>0)$img = imagerotate($img, $degrees, 0xffffff);   //翻转图片

    $otsc = imagecolortransparent($img);
    if($otsc >=0 && $otsc < imagecolorstotal($img)){
        $tran=imagecolorsforindex($img, $otsc);
        $newt=imagecolorallocate($new, $tran["red"], $tran["green"], $tran["blue"]);
        imagefill($new, 0, 0, $newt);
        imagecolortransparent($new, $newt);
    }
    imagecopyresized($new, $img, 0, 0, 0, 0, $width, $height, $s_w, $s_h);
    switch($s_type){
        case ‘image/png‘ :
            imagepng($new, $newfile);
            break;
        case ‘image/gif‘:
            imagegif($new, $newfile);
            break;
        case ‘image/jpg‘:
            imagejpeg($new, $newfile);
            break;
        case ‘image/jpeg‘:
            imagejpeg($new, $newfile);
            break;
        default :
            return false;
    }
    imagedestroy($new);
    imagedestroy($img);
    return true;
}

  

时间: 2024-10-09 00:55:37

一个图片缩略图方法的相关文章

.net又一个生成缩略图的方法,不变形

生成缩略图是一个十分常用功能,找到了一个方法,重写部分代码,实用又好用,.net又一个生成缩略图的方法,不变形 1 /// <summary> 2 /// 为图片生成缩略图 by 何问起 3 /// </summary> 4 /// <param name="phyPath">原图片的路径</param> 5 /// <param name="width">缩略图宽</param> 6 ///

.net又一个生成缩略图的方法,不变形,非常好用

生成缩略图是一个十分常用功能,找到了一个方法,重写部分代码,实用又好用,.net又一个生成缩略图的方法,不变形 1 /// <summary> 2 /// 为图片生成缩略图 by 何问起 3 /// </summary> 4 /// <param name="phyPath">原图片的路径</param> 5 /// <param name="width">缩略图宽</param> 6 ///

推断一个图片是不是伪造的方法

有时候我们闲着无聊可能把.txt文本改成.jpg或.png.可是我们开发的时候可能读取都是按后缀名读取的,或许就可能把这一张伪造的图片也读了出来,可能给我们队开发造成一定的损害.那么我们怎么推断一个图片是真的图片还是假图片那:以下是方法: public static void main(String[] args) throws IOException { File file=new File("C:/Documents and Settings/Administrator/桌面/aa.png&

判断一个图片是不是伪造的方法

有时候我们闲着无聊可能把.txt文本改成.jpg或.png.但是我们开发的时候可能读取都是按后缀名读取的,也许就可能把这一张伪造的图片也读了出来,可能给我们队开发造成一定的损害.那么我们怎么判断一个图片是真的图片还是假图片那:下面是方法: public static void main(String[] args) throws IOException { File file=new File("C:/Documents and Settings/Administrator/桌面/aa.png&

VUE2.0+VUE-Router做一个图片上传预览的组件

之前发了一篇关于自己看待前端组件化的文章,但是由于学习和实践的业务逻辑差异,所以自己练习的一些demo逻辑比较简单,打算用vue重构现在公司做的项目,所以在一些小的功能页面上使用vue来做的,现在写的这个是项目中用户反馈功能而来的,收获还是挺多的. 收获:dom操作=>数据操作       router的使用       组件的使用,具体总结放在尾部. 功能:1.上传图片 2.显示缩略图 3.可以删除 4.可以重新选择文件 先上成品图(主要抽取图片这块),自己在家主要做的功能,样式就不计较了.

android图片处理方法(不断收集中)

//压缩图片大小 public static Bitmap compressImage(Bitmap image) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); image.compress(Bitmap.CompressFormat.JPEG, 100, baos);//质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中 int options = 100; while ( baos.toByteArra

android图片处理方法(转)

//压缩图片大小 public static Bitmap compressImage(Bitmap image) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); image.compress(Bitmap.CompressFormat.JPEG, 100, baos);//质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中 int options = 100; while ( baos.toByteArra

插件 KSImageNamed 用图片时自动显示图片缩略图

https://github.com/ksuther/KSImageNamed-Xcode 也是非常残暴的一个功能,在开发中我们的图片名称都是fb_poinum_high类似的,用这个插件敲出前缀就能够看到对应的一批图片缩略图再上下选择非常方便. 不足之处也有,那就是已经敲完的代码想看到图片缩略图必须先把imageNamed删掉 再重新敲一次才能看到缩略图,如果在@"fb_poinum_high" 图片名中一修改就能看到图片列表就更好了. KSImageNamed 安装后无效解决方法

Android 图片处理方法

//压缩图片大小 public static Bitmap compressImage(Bitmap image) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); image.compress(Bitmap.CompressFormat.JPEG, 100, baos);//质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中 int options = 100; while ( baos.toByteArra