分享
 
 
 

图片的分割与组合

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

我这里只考虑jpg,gif,png格式.

<?php

/**

* @author iwind iwind@wangyou.com.cn

*/

class Image

{

var $ext;

var $i_ext;

var $width;

var $height;

var $create_func;

var $out_func;

function image_load($files)

{

$file = (is_array($files))?$files[0]:$files;

$info = getimagesize($file);

switch ($info[2])

{

case "1":

$this->ext = "gif";

$this->i_ext = "gif";

break;

case "2":

$this->ext = "jpg";

$this->i_ext = "jpeg";

break;

case "3":

$this->ext = "png";

$this->i_ext = "png";

break;

default:

$this->ext = "jpg";

$this->i_ext = "jpeg";

}

$this->create_func = "imagecreatefrom" . $this->i_ext;

$this->out_func = "image" . $this->i_ext;

$this->width = $info[0];

$this->height = $info[1];

}

function image_split($photo, $x_num=1, $y_num=1)

{

$this->image_load($photo);

eval("\$im=" . $this->create_func . "(\$photo);");

$x_width = $this->width/$x_num;

$y_height = $this->height/$y_num;

$im1 = imagecreate($x_width, $y_height);

$files = array();

for ($i=0; $i<$x_num; $i++)

{

for ($j=0; $j<$y_num; $j++)

{

$x = $i * $x_width;

$y = $j * $y_height;

imagecopyresampled($im1, $im, 0, 0, $x, $y, $x_width, $y_height, $x_width, $y_height);

$new_file = "{$i}_{$j}.{$this->ext}";

$files[] = $new_file;

eval("{$this->out_func}(\$im1, \$new_file);");

}

}

imagedestroy($im1);

return $files;

}

function image_join($files, $new_file)

{

if (!empty($files))

{

$this->image_load($files);

$i_arr = array();

$j_arr = array();

foreach ($files as $v)

{

list($v1) = explode(".", $v);

list($i_arr[], $j_arr[]) = explode("_", $v1);

}

$i_arr = array_unique($i_arr);

$j_arr = array_unique($j_arr);

$x_num = count($i_arr);

$y_num = count($j_arr);

$im1 = imagecreate($x_num * $this->width, $y_num * $this->height);

foreach ($i_arr as $i)

{

foreach ($j_arr as $j)

{

$x = $i * $this->width;

$y = $j * $this->height;

eval("\$im = {$this->create_func}(" . "\"{$i}_{$j}.{$this->ext}\");");

imagecopyresampled($im1, $im, $x, $y, 0, 0, $this->width, $this->height, $this->width, $this->height);

}

}

eval("{$this->out_func}(\$im1, \$new_file);");

}

}

}

//创建一个实例

$img = new image();

//将 20041099024319.jpg 分成 2 * 3部分,即宽两部分,高三部分

//$files 是文件名数组

$files = $img->image_split("20041099024319.jpg", 2 , 3);

//将分成的小图重新组起来,名称为 new.jpg

$img->image_join($files, "new.jpg");

//

echo "success......";

?>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有