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

PHP图片剪裁代码

零分 385

因为心血来潮,还是因为给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的,运行上的速度就不去纠结了。

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

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

网站设置开灯(亮模式/白天)和关灯(暗模式/黑夜)效果

在很早之前,这个效果叫做开灯/关灯,现在叫做白天/黑夜,曾经有那么一段时间没有看到过这种效果,现在又很多网站/APP都喜欢这种切换白天/黑夜模式。 实现效果:设置2套或者多套色调模板,和之前的那种换皮肤大差不差。所以博客新主题也设置了这么一个效果,样式布局基本没怎么改变,后台设置页升级了一下,很多东西都不再“写死”,可以自由设置! 白天模式效果: 黑夜模式效果: 感觉黑夜的色调比较好看。 总体涉及到的原理: 1、设计2套或者多套CSS样式,可以在body里添加一个class,后面保留class/ID样式名称不变,在不同的样式里给设计一个区域,通过body里的class名调用不同的样式CSS。
笔记 2,416

记一次网页源码顶部空白行的问题处理

正常来说,网页源码顶部如非UFT-8 bom编码的问题,基本不会影响网站的正常运行,但如php生成xml的话,就会出现问题。 因更换了主题(新主题暂时未上线,只是测试),发现xml无法正常显示,查看源码,顶部多出了一行空白行,本地运行正常。 查找原因,基本每个PHP问题都排查了,未发现任何问题,将主题上传到另外一个网站运行,发现正常。基本可以排除是主题的原因,剩下的可能是插件的问题。 查看了插件的源码,发现真的是插件的问题,PHP插件文件底部多出了几行,删除多出的行,重新运行,空白行不见了! 记录下,防止下次又因同样的原因而花时间去排查!
笔记 2,536

wordpress禁用REST API导致古腾堡编辑器发布文章出错问题

wordpress禁用REST API,在function.php中加入以下代码: add_filter("json_enabled", "__return_false"); add_filter("json_jsonp_enabled", "__return_false"); add_filter("rest_enabled", "__return_false"); add_filter("rest_jsonp_enabled", "__return_false"); remove_action("init", "rest_api_init"); remove_action("rest_ap
笔记 1,380

wordpress 后台主题设置选项按钮(button、input submit)点击屏蔽提交事件禁止刷新

wordpress 后台主题设置选项按钮(button、input submit)点击屏蔽提交事件禁止刷新 如果在设计主题或者插件后台设置选项时,wordpress后台的按钮(button、input submit)默认是提交操作,如只是响应JS事件,需要屏蔽提交,防止页面刷新。e.preventDefault(); 完整示例: $("button.copy").on("click",function(e){ e.preventDefault(); JS操作 });
笔记 1,262