°Ö·¯¸®¿¡¼ ¿øº» À̹ÌÁöÀÇ À̹ÌÁö »çÀÌÁ ÁÙ¿©¼ ¸®½ºÆ®¸¦ Ãâ·ÂÇÏ°Ô Çϴ°÷ÀÌ ¸¹Àºµ¥¿ä
´ë·« ÇÑ ¸®½ºÆ®¿¡¼ 100k´ÜÀ§ÀÇ À̹ÌÁö¸¦ 20°³ ÀÌ»ó¾¿ Ãâ·ÂÇØÁÖ´Ï ´À¸° ÀÎÅͳÝÀ» »ç¿ëÇÏ´Â
°÷¿¡¼´Â °Ö·¯¸® ÆäÀÌÁö °¡¸é ´À·Á¼ ´ä´äÇϳ׿ä~
±×·¡¼ ³»°¡ ¸¸¾à °Ö·¯¸®¸¦ Â¥¸é ÀÌ ¹®Á¦Á¡À» ¾î¶»°Ô ÇØ°áÇØ¾ß ÇÒ±î »ý°¢ÇÏ°í À̹ÌÁö ÀÚü
ÀÇ »çÀÌÁ ÁÙÀÌ´Â°Ô ¾Æ´Ï¶ó »çÀÌÁ ÁÙÀÎ À̹ÌÁö ÀÚü·Î ¹Ù²Ù´Â Äڵ带 ÀÛ¼ºÇغýÀ´Ï´Ù.
¿ë·®Àº 130*100 À¸·Î ÁÙ¿´À» °æ¿ì ÇÑ À̹ÌÁö´ç ¸îKÀÇ ¿ë·®¹Û¿¡ ¾ÈµÇ´õ±º¿ä..
¼ø½Ä°£¿¡ ¸®½ºÆ®°¡ Æĸ£¸£¸£ ³ª¿É´Ï´Ù.
GD±×·¡ÇÈ ¶óÀ̺귯¸®¸¦ ÀÌ¿ëÇߴµ¥
ÀÏ´Ü GIFÆÐÄ¡°¡ µÈ GD¸¦ »ç¿ëÇÏ¼Å¾ß µÇ°í PHP¿Í ¿¬µ¿µÇ¾î¾ß ÇÕ´Ï´Ù.
GD´Â GIF¶óÀ̼¾½º¶§¹®¿¡ GD¸¦ ¹èÆ÷Çϴ°÷¿¡¼´Â GIF ¾²±â°¡ µÇÁö ¾Ê´Â GD¸¦ ¹èÆ÷ÇÏ°í
ÀÖ½À´Ï´Ù.
ÀÏ´Ü ÀÌ°ÍÀ» ´Ù¿î·Îµå ¹Þ¾Æ GIF¾²±â ÆÐÄ¡¸¦ ÇÏ½Ã¸é µË´Ï´Ù.
ÇöÀç Stable Á¤½ÄÀÎ ÃֽŠ¹öÁ¯ÀÔ´Ï´Ù.
http://www.boutell.com/gd/http/gd-2.0.15.tar.gz
GIF¾²±â ÆÐÄ¡ÀÔ´Ï´Ù.
http://downloads.rhyme.com.au/gd/patch_gd2.0.15_gif_030801.gz
´Ù¿î ¹ÞÀ¸½ÅÈÄ(wgetÀ» ÀÌ¿ëÇϽøé ÆíÇÕ´Ï´Ù.)
tar xvzf gd-2.0.15.tar.gz
gzip -d patch_gd2.0.15._gif_030801.gz
patch -d gd-2.0.15 < patch_gd2.0.15_gif_030801 // ÆÐÄ¡ÀÛ¾÷
cd gd-2.0.15
./configure --prefix=/usr/local/gd;make;make install
ÇϽøé GD°¡ /usr/local/gd ¿¡ ¼³Ä¡µË´Ï´Ù.
php ¼ÂÆÃÇϽǶ§´Â
--with-gd=/usr/local/gd --enable-exif °¡ Ãß°¡µÇ¾î¾ß gd±â´ÉÀ» ¿Ïº®È÷ È°¿ëÇÒ
¼ö ÀÖ½À´Ï´Ù.
--enable-exif ¿É¼ÇÀº À̹ÌÁö ŸÀÔÀ» ¾Ë¾Æ³»ÁÖ´Â ±â´ÉÀ» °¡Áý´Ï´Ù.
gd.php µîÀ¸·Î ÀÌ ÆÄÀÏÀ» ÀÛ¼ºÇÕ´Ï´Ù.
<?php
// gd¿¡ »ç¿ëµÉ Àӽà º¯¼öµé
$IsTrueColor = false;
$Extension = null;
// À̹ÌÁö¸¦ ·ÎµùÇÏ´Â ÇÔ¼öÀÔ´Ï´Ù.
function GDImageLoad($filename)
{
global $IsTrueColor, $Extension;
if( !file_exists($filename) ) return false;
$image_type = @exif_imagetype($filename);
switch( $image_type ) {
case IMAGETYPE_JPEG: // JPEGÀÏ°æ¿ì
$im = imagecreatefromjpeg($filename);
$Extension = "jpg";
break;
case IMAGETYPE_GIF: // GIFÀÏ °æ¿ì
$im = imagecreatefromgif($filename);
$Extension = "gif";
break;
case IMAGETYPE_PNG: // pngÀÏ °æ¿ì
$im = imagecreatefrompng($filename);
$Extension = "png";
break;
default:
break;
}
$IsTrueColor = @imageistruecolor($im);
return $im;
}
// À̹ÌÁö Å©±â¸¦ ÁÙÀÔ´Ï´Ù.
function GDImageResize($src_file, $dst_file, $width = NULL, $height = NULL, $type = NULL, $quality = 75)
{
global $IsTrueColor, $Extension;
$im = GDImageLoad($src_file);
if( !$im ) return false;
if( !$width ) $width = imagesx($im);
if( !$height ) $height = imagesy($im);
if( $IsTrueColor && $type != "gif" ) $im2 = imagecreatetruecolor($width, $height);
else $im2 = imagecreate($width, $height);
if( !$type ) $type = $Extension;
imagecopyresampled($im2, $im, 0, 0, 0, 0, $width, $height, imagesx($im), imagesy($im));
if( $type == "gif" ) {
imagegif($im2, $dst_file);
}
else if( $type == "jpg" || $type == "jpeg" ) {
imagejpeg($im2, $dst_file, $quality);
}
else if( $type == "png" ) {
imagepng($im2, $dst_file);
}
imagedestroy($im);
imagedestroy($im2);
return true;
}
?>
À̹ÌÁö¸¦ ÁÙ¿©¾ß Çϴ ó¸®ÆÄÀÏÀÌ Àִ°æ¿ì
ÀÛ¼ºÇÑ ÆÄÀÏÀ» include ÇÏ°í
GDImageResize($src_file, $dst_file, 130, 100, "jpg");
¿¹Á¦)
include("gd.php");
// ¾÷·ÎµåÇÑ ÆÄÀÏÀ» image µð·ºÅ丮¿¡ 130*100À¸·Î ÁÙÀÎ À̹ÌÁö¸¦ m_ÆÄÀÏÀ̸§À¸·Î ¾÷·ÎµåÇÑ´Ù.
GDImageResize($HTTP_POST_FILES[image_file][tmp_name], "image/m_".$HTTP_POST_FILES[image_file][name], 130, 100);
°Ö·¯¸®¿¡¼ ¿øº» À̹ÌÁöÀÇ À̹ÌÁö »çÀÌÁ ÁÙ¿©¼ ¸®½ºÆ®¸¦ Ãâ·ÂÇÏ°Ô Çϴ°÷ÀÌ ¸¹Àºµ¥¿ä<br />
´ë·« ÇÑ ¸®½ºÆ®¿¡¼ 100k´ÜÀ§ÀÇ À̹ÌÁö¸¦ 20°³ ÀÌ»ó¾¿ Ãâ·ÂÇØÁÖ´Ï ´À¸° ÀÎÅͳÝÀ» »ç¿ëÇÏ´Â<br />
°÷¿¡¼´Â °Ö·¯¸® ÆäÀÌÁö °¡¸é ´À·Á¼ ´ä´äÇϳ׿ä~<br />
<br />
±×·¡¼ ³»°¡ ¸¸¾à °Ö·¯¸®¸¦ Â¥¸é ÀÌ ¹®Á¦Á¡À» ¾î¶»°Ô ÇØ°áÇØ¾ß ÇÒ±î »ý°¢ÇÏ°í À̹ÌÁö ÀÚü<br />
ÀÇ »çÀÌÁ ÁÙÀÌ´Â°Ô ¾Æ´Ï¶ó »çÀÌÁ ÁÙÀÎ À̹ÌÁö ÀÚü·Î ¹Ù²Ù´Â Äڵ带 ÀÛ¼ºÇغýÀ´Ï´Ù.<br />
¿ë·®Àº 130*100 À¸·Î ÁÙ¿´À» °æ¿ì ÇÑ À̹ÌÁö´ç ¸îKÀÇ ¿ë·®¹Û¿¡ ¾ÈµÇ´õ±º¿ä..<br />
¼ø½Ä°£¿¡ ¸®½ºÆ®°¡ Æĸ£¸£¸£ ³ª¿É´Ï´Ù.<br />
<br />
GD±×·¡ÇÈ ¶óÀ̺귯¸®¸¦ ÀÌ¿ëÇߴµ¥<br />
ÀÏ´Ü GIFÆÐÄ¡°¡ µÈ GD¸¦ »ç¿ëÇÏ¼Å¾ß µÇ°í PHP¿Í ¿¬µ¿µÇ¾î¾ß ÇÕ´Ï´Ù.<br />
<br />
GD´Â GIF¶óÀ̼¾½º¶§¹®¿¡ GD¸¦ ¹èÆ÷Çϴ°÷¿¡¼´Â GIF ¾²±â°¡ µÇÁö ¾Ê´Â GD¸¦ ¹èÆ÷ÇÏ°í<br />
ÀÖ½À´Ï´Ù.<br />
ÀÏ´Ü ÀÌ°ÍÀ» ´Ù¿î·Îµå ¹Þ¾Æ GIF¾²±â ÆÐÄ¡¸¦ ÇÏ½Ã¸é µË´Ï´Ù.<br />
<br />
ÇöÀç Stable Á¤½ÄÀÎ ÃֽŠ¹öÁ¯ÀÔ´Ï´Ù.<br />
http://www.boutell.com/gd/http/gd-2.0.15.tar.gz<br />
GIF¾²±â ÆÐÄ¡ÀÔ´Ï´Ù.<br />
http://downloads.rhyme.com.au/gd/patch_gd2.0.15_gif_030801.gz<br />
<br />
´Ù¿î ¹ÞÀ¸½ÅÈÄ(wgetÀ» ÀÌ¿ëÇϽøé ÆíÇÕ´Ï´Ù.)<br />
tar xvzf gd-2.0.15.tar.gz<br />
gzip -d patch_gd2.0.15._gif_030801.gz<br />
patch -d gd-2.0.15 < patch_gd2.0.15_gif_030801 // ÆÐÄ¡ÀÛ¾÷<br />
cd gd-2.0.15<br />
./configure --prefix=/usr/local/gd;make;make install<br />
ÇϽøé GD°¡ /usr/local/gd ¿¡ ¼³Ä¡µË´Ï´Ù.<br />
<br />
php ¼ÂÆÃÇϽǶ§´Â<br />
--with-gd=/usr/local/gd --enable-exif °¡ Ãß°¡µÇ¾î¾ß gd±â´ÉÀ» ¿Ïº®È÷ È°¿ëÇÒ<br />
¼ö ÀÖ½À´Ï´Ù.<br />
--enable-exif ¿É¼ÇÀº À̹ÌÁö ŸÀÔÀ» ¾Ë¾Æ³»ÁÖ´Â ±â´ÉÀ» °¡Áý´Ï´Ù.<br />
<br />
gd.php µîÀ¸·Î ÀÌ ÆÄÀÏÀ» ÀÛ¼ºÇÕ´Ï´Ù.<br />
<?php<br />
<br />
// gd¿¡ »ç¿ëµÉ Àӽà º¯¼öµé<br />
$IsTrueColor = false;<br />
$Extension = null;<br />
<br />
// À̹ÌÁö¸¦ ·ÎµùÇÏ´Â ÇÔ¼öÀÔ´Ï´Ù.<br />
function GDImageLoad($filename)<br />
{<br />
global $IsTrueColor, $Extension;<br />
<br />
if( !file_exists($filename) ) return false;<br />
<br />
$image_type = @exif_imagetype($filename);<br />
<br />
switch( $image_type ) {<br />
case IMAGETYPE_JPEG: // JPEGÀÏ°æ¿ì<br />
$im = imagecreatefromjpeg($filename);<br />
$Extension = "jpg";<br />
break;<br />
case IMAGETYPE_GIF: // GIFÀÏ °æ¿ì<br />
$im = imagecreatefromgif($filename);<br />
$Extension = "gif";<br />
break;<br />
case IMAGETYPE_PNG: // pngÀÏ °æ¿ì<br />
$im = imagecreatefrompng($filename);<br />
$Extension = "png";<br />
break;<br />
default:<br />
break;<br />
}<br />
<br />
$IsTrueColor = @imageistruecolor($im);<br />
<br />
return $im;<br />
}<br />
<br />
// À̹ÌÁö Å©±â¸¦ ÁÙÀÔ´Ï´Ù.<br />
function GDImageResize($src_file, $dst_file, $width = NULL, $height = NULL, $type = NULL, $quality = 75)<br />
{<br />
global $IsTrueColor, $Extension;<br />
<br />
$im = GDImageLoad($src_file);<br />
<br />
if( !$im ) return false;<br />
<br />
if( !$width ) $width = imagesx($im);<br />
if( !$height ) $height = imagesy($im);<br />
<br />
if( $IsTrueColor && $type != "gif" ) $im2 = imagecreatetruecolor($width, $height);<br />
else $im2 = imagecreate($width, $height);<br />
<br />
if( !$type ) $type = $Extension;<br />
<br />
imagecopyresampled($im2, $im, 0, 0, 0, 0, $width, $height, imagesx($im), imagesy($im));<br />
<br />
if( $type == "gif" ) {<br />
imagegif($im2, $dst_file);<br />
}<br />
else if( $type == "jpg" || $type == "jpeg" ) {<br />
imagejpeg($im2, $dst_file, $quality);<br />
}<br />
else if( $type == "png" ) {<br />
imagepng($im2, $dst_file);<br />
}<br />
<br />
imagedestroy($im);<br />
imagedestroy($im2);<br />
<br />
return true;<br />
}<br />
?><br />
<br />
<br />
À̹ÌÁö¸¦ ÁÙ¿©¾ß Çϴ ó¸®ÆÄÀÏÀÌ Àִ°æ¿ì<br />
ÀÛ¼ºÇÑ ÆÄÀÏÀ» include ÇÏ°í<br />
GDImageResize($src_file, $dst_file, 130, 100, "jpg");<br />
<br />
¿¹Á¦)<br />
include("gd.php");<br />
// ¾÷·ÎµåÇÑ ÆÄÀÏÀ» image µð·ºÅ丮¿¡ 130*100À¸·Î ÁÙÀÎ À̹ÌÁö¸¦ m_ÆÄÀÏÀ̸§À¸·Î ¾÷·ÎµåÇÑ´Ù.<br />
GDImageResize($HTTP_POST_FILES[image_file][tmp_name], "image/m_".$HTTP_POST_FILES[image_file][name], 130, 100);<br />