/
_file.php
112 lines (99 loc) · 3.33 KB
/
_file.php
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
<?php
function make_square($source, $dest, $ext){
$source_size = getimagesize($source);
if ( $source_size[0] > $source_size[1] ){
$square_size = $source_size[0];
$offX = 0;
$offY = ( $source_size[0] - $source_size[1] ) / 2;
}
else {
$square_size = $source_size[1];
$offX = ( $source_size[1] - $source_size[0] ) / 2;
$offY = 0;
}
if($ext == 'jpg' || $ext == 'jpeg') $image = imagecreatefromjpeg( $source );
if($ext == 'png') $image = imagecreatefrompng( $source );
$square = imagecreatetruecolor($square_size, $square_size);
imagefill( $square, 0, 0, imagecolorallocate($square, 255, 255, 255) );
imagecopyresampled($square, $image, $offX, $offY, 0, 0, $source_size[0], $source_size[1], $source_size[0], $source_size[1]);
imagejpeg($square, $dest);
}
function cut_tile($source, $dest_path, $min, $max, $ext){
$source_size = getimagesize($source);
if ( $source_size[0] == 0 || $source_size[1] == 0 ) return false;
//원본 사진을 정사각형으로 변형함.
if ( $source_size[0] > $source_size[1] ){
$square_size = $source_size[0];
$offX = 0;
$offY = ( $source_size[0] - $source_size[1] ) / 2;
}
else {
$squre_size = $source_size[1];
$offX = ( $source1Size[1] - $source1Size[0] ) / 2;
$offY = 0;
}
if($ext == 'jpg' || $ext == 'jpeg') $image = imagecreatefromjpeg( $source );
if($ext == 'png') $image = imagecreatefrompng( $source );
$square = imagecreatetruecolor($square_size, $square_size);
imagefill( $square, 0, 0, imagecolorallocate($square, 255, 255, 255) );
imagecopyresampled($square, $image, $offX, $offY, 0, 0, $source_size[0], $source_size[1], $source_size[0], $source_size[1]);
$num_of_tile = pow(2, $minZoom-1);
for($j=$minZoom; $j<=$maxZoom; $j++){
$num_of_tile *= 2;
$tile_size = $square_size/$num_of_tile;
for($k=0; $k<$num_of_tile; $k++){
for($l=0; $l<$num_of_tile; $l++){
$tile = imagecreatetruecolor(256, 256);
imagecopyresampled($tile, $square, 0, 0, $k*$tile_size, $l*$tile_size, 256, 256, $tile_size, $tile_size);
imagejpeg($tile, "$dest_path/$j-$k-$l.jpg");
}
}
}
}
function scale_img($url, $web_url, $standard_width, $standard_height){
$size = getimagesize($url);
$width = $size[0];
$height = $size[1];
$ratio = $height/$width;
$standard_ratio = $standard_height/$standard_width;
//$standard_ratio2 = 300/774;
if($ratio>=$standard_ratio){
$new_height = $standard_height;
$new_width = $new_height/$ratio;
}
else{
$new_width = $standard_width;
$new_height = $ratio*$new_width;
}
$dest = imagecreatetruecolor($new_width, $new_height);
$src = imagecreatefromjpeg($url);
imagecopyresampled($dest, $src, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
imagejpeg($dest, $web_url);
}
function copyDir($src, $dst){
if( is_dir($src) === true ){
$handle = opendir($src);
while( $entry = readdir($handle) ){
if( $entry === '.' || $entry === '..' ) continue;
if( is_dir("$src/$entry") ) mkdir("$dst/$entry");
copyDir("$src/$entry", "$dst/$entry");
}
closedir($handle);
}
else
copy($src, $dst);
}
function removeDir($src){
if( is_dir($src) === true ){
$handle = opendir($src);
while( $entry = readdir($handle) ){
if( $entry === '.' || $entry === '..' ) continue;
removeDir("$src/$entry");
}
rmdir($src);
closedir($handle);
}
else
unlink($src);
}
?>