当前位置:
  1. 首页 »
  2. 笔记 »
  3. 正文

PHP图片剪裁代码

零分 607

因为心血来潮,还是因为给SAE绑定了域名?顺便就找了一个PHP图片剪裁的代码,打算重写下图床的程序,想一想还是暂时放弃了!

PHP图片剪裁,看了网上有很多,也有很长的代码,东拼西凑的整理了一段比较短的。代码因为是配合自己SAE上图床的,大众的就没有再去整理了。

<?php
$hw=$_GET['hw'];
$wh=explode('x',$hw);
$d=$_GET['d'];
$f=$_GET['f'];
// The file 
$stor = new SaeStorage();
if($stor->fileExists($d,$f)){
$filename =$stor->getUrl($d,$f);
}else{
$filename='noimg.png';
}




function file_header($a){
switch($a){
case 'png':
return 'Content-type: image/png';
break;
case 'gif':
return 'Content-type: image/gif';
break;
case 'jpg':
return 'Content-type: image/jpeg';
break;
case 'bmp':
return 'Content-type: image/bmp';
break;
default:
return 'Content-Type: application/octet-stream';
}
}
$info = pathinfo($filename);
//如果后缀获取失败则默认为jpg 
if(emptyempty($info['extension'])){$info['extension'] = 'jpg';}


function imagecreatefrom($type){
    global $filename;
switch($type){
case 'png':
return imagecreatefrompng($filename);
break;
case 'gif':
return imagecreatefromgif($filename);
break;
case 'jpg':
return imagecreatefromjpeg($filename);
break;
case 'bmp':
return imagecreatefromjbmp($filename);
break;
}
}


//输出文件头 
$header = file_header($info['extension']);


// Set a maximum height and width 
$width=null;
$height=null;
$width =!emptyempty($wh[0]) ? $wh[0]:300;
$height = !emptyempty($wh[1]) ? $wh[1]:300 ;
// Content type 
//header('Content-Type: image/jpeg'); 
header ("{$header}");
// Get new dimensions 
$list=getimagesize($filename);
//list($, ) = getimagesize($filename); 
$width_orig=$list[0];
$height_orig=$list[1];
$min=$list['mime'];


if($width_orig>$height_orig){
$new_height=$height;
$new_width=$new_height/$height_orig*$width_orig;
      $leftbig=($new_width-$width)/2;
    $left=$leftbig/$new_width*$width;


}else{
$new_width=$width;
$new_height=$new_width/$width_orig*$height_orig;
    $left=0;
}
if($new_width<$width)
    {
        $new_width=$width;
        $new_height=$new_width/$width_orig*$height_orig;
    $left=0;
    }
//$ratio_orig = $width_orig/$height_orig; 
//if ($width/$height > $ratio_orig) { 
//$width = $height*$ratio_orig; 
//} else { 
//$height = $width/$ratio_orig; 
//} 
// Resample 
$image_p = imagecreatetruecolor($width,$height);
$image = imagecreatefrom($info['extension']);
imagecopyresampled($image_p, $image, 0,0, $left,0, $new_width, $new_height, $width_orig, $height_orig);
//imagecopyresampled()
// Output 
imagejpeg($image_p, null, 100);
//echo $new_width.'---'.$new_height.'---'.$min;
?>

没有图片就显示默认值,这个是配合自己程序的!

中间有一个判断header头,一个是判断  imagecreatefrom的,运行上的速度就不去纠结了。

微信个人公众号未实名似乎也不能“无限”注册了

之前通过公众号助手可以快速注册个人公众号,而且可以注册多个,但实名认证只能是一个。 现在似乎已经不能再注册了,之前注册了2个,一直无法实名认证,就没有再注册,今天试了一下,似乎只能注册一个了。 注册一个之后,即便没有通过实名认证,也算个人类型的。 其他:一个身份证只能绑定5个管理员的公众号,超过5个无法再实名认证,之前利用企业,可以绑定50个,现在已经无法认证个人号了!
笔记 579

已备案域名不能进行交易售卖了

域名又出新政策了,已备案的域名不能进行交易了,以前卖出去的域名都是已经备案的,虽然卖出去之后可以进行注销备案! 阿里云域名交易平台将于2025年10月24日开始对出售中的已备案域名进行治理,相关域名出售信息将不予展示。 所以,以后想通过平台买域名,应该不会有搜索引擎收录了,已经备案的域名估计以后也可能没办法过户,想要过户应该需要先注销备案
笔记 1,037

win10和win11的.txt微软记事本开始收费了?

据悉,win10/win11上的.txt微软自带的记事本和画图软件开始收费了,价格为每月 9.99 美元或每年 99.99 美元。 不过收费功能是AI的部分功能,记事本和画图植入了AI功能。不使用这些AI功能,还是可以免费使用。 记事本:AI 文本重写(Rewrite)、AI 生成不同格式、语气的文本版本(Change tone)、AI 文本缩短 / 加长(Make shorter / Make longer) 画图:AI 图像生成器(Image Creator),该功能基于 OpenAI 的 Dall-E 模型。 自 1983 年推出记事本、1985 年推出画图应用以来,这两款应用始终是免费
笔记 1,921

淘宝天猫商城终于全面支持微信支付

当淘宝说支持微信支付的时候,到现在似乎已经有很长一段时间了,天猫终于开始支持微信支付了。 这两天突然发现,天猫商品可以选择微信支付,尝试点开几个,都有微信支付,虽然在列表的最后。 发起支付,会跳到微信,支付,和美团、饿了么的微信支付一样一样的。 如果继续深入合作互通,淘宝会不会支持微信登录呢?
笔记 2,985

记一次宝塔MySQL无法启动的问题

去顺丰送快递之后,一直就没有管理打开网站,好像不去之前也没怎么更新 难得休息,打算更新下企业模板,发现无法打开。显示链接数据库失败。 进入宝塔后台,发现MySQL停止了运行。 第一时间启动MySQL,但是发现一直启动失败。 之后更新了下宝塔,更新了下MySQL,还是无法启动。 百度了一番,发现原来我是真的看不懂那些日志。 只好找些看得懂的来测试。 删除了两个文件 /www/server/data/ib_logfile0 /www/server/data/ib_logfile1 无法启动,注释了innodb_开头配置 #innodb_data_home_dir = /www/server/dat
笔记 1,947