仓酷云
标题:
MYSQL编程:图片裁剪+缩略图的处置程序
[打印本页]
作者:
莫相离
时间:
2015-1-16 22:17
标题:
MYSQL编程:图片裁剪+缩略图的处置程序
这些过程被存储和运行在数据库服务器上,以减少在客户端的处理过程,从而最大限度地提高了处理能力,因为通常情况下数据库服务器会运行地更快。存储过程并不是MySQL独有的功能,但是这个最近新增加的功能使得这个数据库比以前更具吸引力了。处置办法是:
1.当原始图片的宽或高任一比划定的尺寸小,只举行等比缩略处置,
2.当原始图片的宽与高都比划定尺寸年夜,先辈行等比缩略处置,然后算出居中地位举行裁剪
<?php
/*
*$o_photo原始图片路径
*$d_photo处置后图片路径
*$width界说宽
*$height界说高
*挪用办法cutphoto("test.jpg","temp.jpg",256,146);
*/
functioncutphoto($o_photo,$d_photo,$width,$height){
$temp_img=imagecreatefromjpeg($o_photo);
$o_width=imagesx($temp_img);//获得原始图片宽
$o_height=imagesy($temp_img);//获得原始图片高
//判别处置办法
if($width>$o_width||$height>$o_height){//原始图片宽或高比划定的尺寸小,举行紧缩
$newwidth=$o_width;
$newheight=$o_height;
if($o_width>$width){
$newwidth=$width;
$newheight=$o_height*$width/$o_width;
}
if($newheight>$height){
$newwidth=$newwidth*$height/$newheight;
$newheight=$height;
}
//缩略图片
$new_img=imagecreatetruecolor($newwidth,$newheight);
imagecopyresampled($new_img,$temp_img,0,0,0,0,$newwidth,$newheight,$o_width,$o_height);
imagejpeg($new_img,$d_photo);
imagedestroy($new_img);
}else{//原始图片宽与高都比划定尺寸年夜,举行紧缩后裁剪
if($o_height*$width/$o_width>$height){//先断定width与划定不异,假如height比划定年夜,则ok
$newwidth=$width;
$newheight=$o_height*$width/$o_width;
$x=0;
$y=($newheight-$height)/2;
}else{//不然断定height与划定不异,width自顺应
$newwidth=$o_width*$height/$o_height;
$newheight=$height;
$x=($newwidth-$width)/2;
$y=0;
}
//缩略图片
$new_img=imagecreatetruecolor($newwidth,$newheight);
imagecopyresampled($new_img,$temp_img,0,0,0,0,$newwidth,$newheight,$o_width,$o_height);
imagejpeg($new_img,$d_photo);
imagedestroy($new_img);
$temp_img=imagecreatefromjpeg($d_photo);
$o_width=imagesx($temp_img);//获得缩略图宽
$o_height=imagesy($temp_img);//获得缩略图高
//裁剪图片
$new_imgx=imagecreatetruecolor($width,$height);
imagecopyresampled($new_imgx,$temp_img,0,0,$x,$y,$width,$height,$width,$height);
imagejpeg($new_imgx,$d_photo);
imagedestroy($new_imgx);
}
}
?>而且其固有的弹性使得它易于扩展以处理不断增长的需求,或当需求MySQL学习教程减弱时缩减规模。
作者:
谁可相欹
时间:
2015-1-19 06:45
如果你是从“学习某一种数据库应用软件,从而获得应聘的资本和工作机会”的角度来问的话。
作者:
飘飘悠悠
时间:
2015-1-27 12:52
不好!如果出了错;不好调试;不好处理!其实web开发将代码分为3层:web层;业务逻辑层和数据访问层;一般对数据库的操作都在数据访问层来做;这样便于调试和维护!而且将来如果是换了数据库的话;你只需要改数据层的代码;其他层的基本可以不变!要是你在jsp中直接调用sql数据库;那么如果换了数据库呢?岂不都要改?如果报了异常呢?怎么做异常处理?
作者:
仓酷云
时间:
2015-2-11 10:08
只能告诉你,学好数据库语言和原理,多见识几种数据库软件,比一棵树上吊死要好。
作者:
老尸
时间:
2015-3-2 10:37
对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。
作者:
透明
时间:
2015-3-11 03:39
大家注意一点。如下面的例子:
作者:
若天明
时间:
2015-3-17 20:09
另一个是把SQL语句写到服务器端,就是所谓的SP(存储过程);
作者:
爱飞
时间:
2015-3-24 23:35
总感觉自己还是不会SQL
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2