请问怎么用php实现将图片上传后转换为自己设定的东西,比如460px宽240px,然后保存到文件夹zhuanhuan下面 5

请问怎么用php实现将图片上传后转换为自己设定的东西,比如460px宽240px,然后保存到文件夹zhuanhuan下面,谢谢!... 请问怎么用php实现将图片上传后转换为自己设定的东西,比如460px宽240px,然后保存到文件夹zhuanhuan下面,谢谢! 展开
 我来答
你妹_伤不起
2015-06-17 · TA获得超过295个赞
知道小有建树答主
回答量:498
采纳率:100%
帮助的人:267万
展开全部
class CImage
{
/**
* 生成保持原图纵横比的缩略图,支持.png .jpg .gif
* 缩略图类型统一为.png格式
* $srcFile     原图像文件名称
* $toW         缩略图宽
* $toH         缩略图高
* $toFile      缩略图文件名称,为空覆盖原图像文件
* @return bool    
*/
public static function CreateThumbnail($srcFile, $toW, $toH, $toFile="") 
{
if ($toFile == "")

  $toFile = $srcFile; 
}
$info = "";
//返回含有4个单元的数组,0-宽,1-高,2-图像类型,3-宽高的文本描述。
//失败返回false并产生警告。
$data = getimagesize($srcFile, $info);
if (!$data)
return false;
//将文件载入到资源变量im中
switch ($data[2]) //1-GIF,2-JPG,3-PNG
{
   case 1:
if(!function_exists("imagecreatefromgif"))
{
echo "the GD can't support .gif, please use .jpeg or .png! <a href='javascript:history.back();'>back</a>";
exit();
}
$im = imagecreatefromgif($srcFile);
break;
   case 2:
if(!function_exists("imagecreatefromjpeg"))
{
echo "the GD can't support .jpeg, please use other picture! <a href='javascript:history.back();'>back</a>";
exit();
}
$im = imagecreatefromjpeg($srcFile);
break;
     
case 3:
$im = imagecreatefrompng($srcFile);    
break;
}
//计算缩略图的宽高
$srcW = imagesx($im);
$srcH = imagesy($im);
$toWH = $toW / $toH;
$srcWH = $srcW / $srcH;
if ($toWH <= $srcWH) 
{
$ftoW = $toW;
$ftoH = (int)($ftoW * ($srcH / $srcW));
}
else 
{
$ftoH = $toH;
$ftoW = (int)($ftoH * ($srcW / $srcH));
}
if (function_exists("imagecreatetruecolor")) 
{
$ni = imagecreatetruecolor($ftoW, $ftoH); //新建一个真彩色图像
if ($ni) 
{
//重采样拷贝部分图像并调整大小 可保持较好的清晰度
imagecopyresampled($ni, $im, 0, 0, 0, 0, $ftoW, $ftoH, $srcW, $srcH);

else 
{
//拷贝部分图像并调整大小
$ni = imagecreate($ftoW, $ftoH);
imagecopyresized($ni, $im, 0, 0, 0, 0, $ftoW, $ftoH, $srcW, $srcH);
}
}
else 
{
$ni = imagecreate($ftoW, $ftoH);
imagecopyresized($ni, $im, 0, 0, 0, 0, $ftoW, $ftoH, $srcW, $srcH);
}
//保存到文件 统一为.png格式
imagejpeg($ni, $toFile); //以 jpeg 格式将图像输出到浏览器或文件
ImageDestroy($ni);
ImageDestroy($im);
return true;
}
}

就一个方法 应该会用吧
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式