LUPA首页 | 资讯 | 教程 | 下载 | 求职 | 方案 | 博客 | 交易 | 英文版
LUPA论坛


 
henry.ning
版主
Rank: 7Rank: 7Rank: 7
果然很寂寞


风雨同舟奖  
UID 24562
精华 6
积分 871
帖子 360
LUPA币 679 点
阅读权限 100
注册 2006-9-9
来自 20644931
发表于 2007-3-4 13:15  资料 个人空间 短消息 
写了个 PHP 图像 Resize 函数

很多所谓的 Web 2.0 网站都会弄个用户头像什么的, 发现网上介绍的方法通常都不能达到我们想要的效果, 就是宽和高一样的~

直接使用 imagecopyresampled 可以, 不过如果高和宽本身不一样的话, 图象就不能很清晰, 我写的个函数, 模仿了 Ning.Com 使用的方法, 大家参考!

<?php
  function image_resize($source_file, $output_file, $size = 100)
  {
    $type = exif_imagetype($source_file);
    if ($type == IMAGETYPE_JPEG)
    {
      $source_image = imagecreatefromjpeg($source_file);
    } elseif ($type == IMAGETYPE_PNG) {
      $source_image = imagecreatefrompng($source_file);
    } elseif ($type == IMAGETYPE_GIF) {
      $source_image = imagecreatefromgif($source_file);
    } else {
      return FALSE;
    }
    list($source_width, $source_height) = getimagesize($source_file);
    if ($source_height > $source_width)
    {
      $src_x = 0;
      $src_y = ($source_height-$source_width)/2;
      
      $src_w = $source_width;
      $src_h = $source_width;
    } else {
      $src_x = ($source_width - $source_height)/2;
      $src_y = 0;
      
      $src_w = $source_height;
      $src_h = $source_height;
    }
    $output_image = imagecreatetruecolor($size, $size);
    $bg = imagecolorallocate($output_image, 255, 255, 255);
    imagefill($output_image, 0, 0, $bg);
    imagecopyresampled($output_image, $source_image, 0, 0, $src_x, $src_y, $size, $size, $src_w, $src_h);
    imagejpeg($output_image, $output_file, 100);
  }
  
  image_resize('test.jpg', 'output.jpg');
?>

首发地址: http://china.udclub.com/b/read/10008




*
* WELCOME to the VeriSign Global Registry Service Whois Server.
*
* Sorry, the Whois database is currently down.
*
* Please wait a while and try again.  Thanks
*
顶部
[广告] 推荐个超酷的web2.0相册
fluke
版主
Rank: 7Rank: 7Rank: 7


优秀斑竹奖  
UID 7246
精华 0
积分 3033
帖子 370
LUPA币 2848 点
阅读权限 100
注册 2005-10-16
来自 湛江
发表于 2007-6-25 12:14  资料 主页 个人空间 短消息  QQ ICQ 状态
整个弄成正方形的?

对于按照比例缩放,有个更通用的问题,我描述一下,如果搂住觉得有必要实现或者好玩,可以试试实现它。

把一个大小 w, h 的图片,放在一个 fw, fh 的框里面,要求能完整显式图片,但是比例不变。




Fluke's Blog
I'm a user.
顶部
[广告] 推荐个超酷的web2.0相册
bigapple
LUPA贵宾
Rank: 8Rank: 8


贵宾荣誉勋章  
UID 72
精华 2
积分 2941
帖子 880
LUPA币 2497 点
阅读权限 100
注册 2005-9-4
发表于 2007-6-25 12:43  资料 个人空间 短消息  QQ
现在都是直接可以自己选择区域的,尤其做头像的时候。




-bigapple-
风吹哪页读哪页
顶部
[广告] 推荐个超酷的web2.0相册
fluke
版主
Rank: 7Rank: 7Rank: 7


优秀斑竹奖  
UID 7246
精华 0
积分 3033
帖子 370
LUPA币 2848 点
阅读权限 100
注册 2005-10-16
来自 湛江
发表于 2007-6-25 14:08  资料 主页 个人空间 短消息  QQ ICQ 状态
楼上说的那种应用,我以前做过,呵呵。

主要过程大致就是js处理前台图片显式的效果,用户提交的时候才把效果用的参数发送给imagemagick来处理。

现在ajax,有必要的时候,中间也能提交修改,可能能实现更强大的效果。




Fluke's Blog
I'm a user.
顶部
斯文.败类
开源主力军
Rank: 3Rank: 3


UID 52890
精华 1
积分 1373
帖子 66
LUPA币 1338 点
阅读权限 30
注册 2007-6-24
发表于 2007-6-25 15:48  资料 短消息 
好厉害,不过我不喜欢写代码
顶部
cooldgjk
开源主力军
Rank: 3Rank: 3



UID 30303
精华 0
积分 626
帖子 68
LUPA币 592 点
阅读权限 30
注册 2007-1-28
发表于 2007-11-21 17:50  资料 短消息 
可以写成个类啊..

还要可以指定宽和高的.




顶部
 


当前时区 GMT+8, 现在时间是 2008-5-17 12:07
浙ICP备06002895号

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.0.0  © 2001-2006 Comsenz Inc.
Processed in 0.052106 second(s), 7 queries , Gzip enabled

清除 Cookies - 联系我们 - LUPA开源社区 - Archiver - WAP