imagecut.php
4.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<?php
/**
* 截取图片
*
* @version $Id: imagecut.php 1 11:06 2010年7月13日Z tianya $
* @package DedeCMS.Administrator
* @copyright Copyright (c) 2007 - 2010, DesDev, Inc.
* @license http://help.dedecms.com/usersguide/license.html
* @link http://www.dedecms.com
*/
require_once(dirname(__FILE__).'/config.php');
$action = isset($action) ? trim($action) : '';
if(empty($action))
{
if(!@is_file($cfg_basedir.$file))
{
ShowMsg("对不起,必须选择站内的图片才能进行裁剪!<br />点击'<a href='/include/dialog/select_images.php?f=form1.picname&imgstick=small'>站内选择</a>', 上传或选择一个图片,然后才能进行裁剪!", "../include/dialog/select_images.php?f=form1.picname&imgstick=small", 0 , 10000);
exit();
}
include DEDEADMIN.'/templets/imagecut.htm';
exit();
}
elseif($action == 'cut')
{
require_once(DEDEINC.'/image.func.php');
if(!@is_file($cfg_basedir.$file))
{
ShowMsg('对不起,请重新选择裁剪图片!', '-1');
exit();
}
if(empty($width))
{
ShowMsg('对不起,请选择裁剪图片的尺寸!', '-1');
exit();
}
if(empty($height))
{
ShowMsg('对不起,请选择裁剪图片的尺寸!', '-1');
exit();
}
$imginfo = getimagesize($cfg_basedir.$file);
$imgw = $imginfo[0];
$imgh = $imginfo[1];
$temp = 400/$imgw;
$newwidth = 400;
$newheight = $imgh * $temp;
$srcFile = $cfg_basedir.$file;
$thumb = imagecreatetruecolor($newwidth, $newheight);
$thumba = imagecreatetruecolor($width, $height);
switch($imginfo['mime'])
{
case 'image/jpeg':
$source = imagecreatefromjpeg($srcFile);
break;
case 'image/gif':
$source = imagecreatefromgif($srcFile);
break;
case 'image/png':
$source = imagecreatefrompng($srcFile);
break;
default:
ShowMsg('对不起,裁剪图片类型不支持请选择其他类型图片!', '-1');
break;
}
imagecopyresized($thumb, $source, 0, 0, 0, 0 , $newwidth, $newheight, $imgw, $imgh);
imagecopy($thumba, $thumb, 0, 0, $left, $top, $newwidth, $newheight);
$ddn = substr($srcFile, -3);
$ddpicok = $reObjJs = '';
if( empty($isupload) )
{
$ddpicok = preg_replace("#\.".$ddn."$#", '-lp.'.$ddn, $file);
$reObjJs = " var backObj = window.opener.document.form1.picname;
var prvObj = window.opener.document.getElementById('divpicview');\r\n";
}
else
{
$ddpicok = $file;
$reObjJs = " var backObj = window.opener.parent.document.form1.picname;
var prvObj = window.opener.parent.document.getElementById('divpicview');\r\n";
}
$ddpicokurl = $cfg_basedir.$ddpicok;
switch($imginfo['mime'])
{
case 'image/jpeg':
imagejpeg($thumba, $ddpicokurl, 85);
break;
case 'image/gif':
imagegif($thumba, $ddpicokurl);
break;
case 'image/png':
imagepng($thumba, $ddpicokurl);
break;
default:
ShowMsg("对不起,裁剪图片类型不支持请选择其他类型图片!", "-1");
break;
}
//对任意裁剪方式再次缩小图片至限定大小
if($newwidth > $cfg_ddimg_width || $newheight > $cfg_ddimg_height)
{
ImageResize($ddpicokurl, $cfg_ddimg_width, $cfg_ddimg_height);
}
//如果从其它图中剪出, 保存附件信息
if( empty($isupload) )
{
$inquery = "INSERT INTO `#@__uploads`(title,url,mediatype,width,height,playtime,filesize,uptime,mid)
VALUES ('$ddpicok','$ddpicok','1','0','0','0','".filesize($ddpicokurl)."','".time()."','".$cuserLogin->getUserID()."'); ";
$dsql->ExecuteNoneQuery($inquery);
$fid = $dsql->GetLastID();
AddMyAddon($fid, $ddpicok);
}
?>
<SCRIPT language=JavaScript>
function ReturnImg(reimg)
{
<?php echo $reObjJs; ?>
backObj.value = reimg;
if(prvObj)
{
prvObj.style.width = '150px';
prvObj.innerHTML = "<img src='"+reimg+"?n' width='150' />";
}
if(document.all) {
window.opener=true;
}
window.close();
}
ReturnImg("<?php echo $ddpicok; ?>");
</SCRIPT>
<?php
}
?>