µ±Ç°Î»ÖãºLinux½Ì³Ì - Php - ´´½¨²¢´¦ÀíͼÏó

´´½¨²¢´¦ÀíͼÏó

ÔÚ°²×°ÁËһЩµÚÈý·½º¯Êý¿âÖ®ºó£¬½áºÏͼÐδ¦Àí¼¼ÄÜ£¬Äã¾Í¿ÉÒÔѸËÙʹÓÃPHP´´½¨ºÍ´¦ÀíͼÏñÁË¡£ÊÂʵÉÏ£¬ÄãÒ²²»ÐèÒªºÜ¶à¼¸ºÎѧ֪ʶ¡ª¡ªÒòΪÎÒÔÚÖÐѧµÄʱºòÕâÃŹ¦¿ÎÔø¾­²»¼°¸ñ¶øÏÖÔÚÈ´ÄÜʹÓÃPHP´´½¨Í¼Ïñ£¡



ÔÚʹÓûù±¾µÄͼÏñ´´½¨º¯Êý֮ǰ£¬ÐèÒª°²×°GD¿â¡£ÒªÊ¹ÓÃJPEGÏà¹ØµÄͼÏñ´´½¨º¯Êý»¹ÐèÒª°²×°jpeg-6b¡£ÔÚͼÏñÖÐʹÓÃType 1×ÖÌåµÄʱºò»¹±ØÐë°²×°t1lib¡£

ÔÚÕâÀÄ㻹ÐèÒª¶ÔÄãµÄϵͳÉèÖýøÐнøÒ»²½µØµ÷Õû¡£Ê×ÏȰ²×°t1lib²¢½áÊø£¬È»ºóÊÇjpeg-6b¡£µÚÈý²½°²×°GDº¯Êý¿â¡£È·±£ÒÔÉÏÈý²¿·Ö°´Ë³Ðò°²×°£¬Ô­ÒòÊÇÄãÐèÒª±àÒëGD¿â²ÅÄÜʹÓÃjpeg-6b¿â¡£Èç¹ûÊ×ÏȰ²×°jpeg-6b£¬±àÒë¾Í»á³ö´í£¬Õâ»áÈÃÄã²»ÖªËù´ë¹»ÉÏÒ»¶Îʱ¼ä¡£

ÔÚÈýº¯Êý¿âÖ®ºó£¬ÖØÐÂÅäÖÃPHP¡£ÕâÊÇÔÚÇáËɰ²×°PHPµÄDSO°æ±¾Ê±µÄµäÐÍ·½·¨¡£È»ºóÖ´ÐÐmake clean,ÃüÁ²¢ÔÚµ±Ç°ÅäÖÃÌáʾÖмÓÈëÒÔÏ´úÂ룺

--with-gd=[/path/to/gd]

--with-jpeg-dir=[/path/to/jpeg-6b]

--with-t1lib=[/path/to/t1lib]

×îºóÖ´ÐÐmake¡¢make installÍê³ÉÅäÖá£ÖØÐÂÆô¶¯ Apache£¬²¢ÔËÐÐphpinfo()º¯ÊýÒÔ¼ì²éй¦ÄÜÊÇ·ñÕý³£ÔËÐУ¬È»ºó¾Í¿ÉÒÔ¿ªÊ¼ÁË¡£

È¡¾öÓÚ°²×°µÄGD¿â°æ±¾£¬Äã¿ÉÄܾßÓд´½¨GIF»òÕßPNGͼÏñµÄÄÜÁ¦¡£¹Ø¼üÊÇÈç¹ûÄãÒѾ­°²×°ÁËgd-1.6»òÕßÔçÆÚ°æ±¾£¬Ôò¿É´¦ÀíGIFÎļþ£¬µ«²»ÄÜ´¦ÀíPNGÎļþ£»Èç¹û°²×°ÁËgd-1.6»òÕßÒÔºó°æ±¾£¬Äã¿ÉÒÔ´¦ÀíPNGÎļþÈ´ÓÖ²»ÄÜ´¦ÀíGIFÎļþ¡£

´´½¨Ò»¸ö¼òµ¥µÄͼÏñÐèÒª¼¸¸öº¯Êý¡£ÎÒ½«°´²½ÖèÑÝʾÈçÏ¡£

Êä³ö°üº¬ÄãËù´´½¨Í¼ÏñMIMEÀàÐ͵ÄÎļþÍ·£¬±¾ÀýÖÐΪPNG¡£

<? header ("Content-type: image/png");

ʹÓÃImageCreate()´´½¨Ò»±äÁ¿´æ·Å¿Õ°×ͼÏñ¡£¸Ãº¯ÊýÐèÒªÒ»¸öͼƬÏñËØ³ß´ç¡£¸ñʽΪImageCreate(x_size, y_size)£¬¶Ô250*250ÏñËØµÄͼƬ£¬ÈçÏ£º

$newImg = ImageCreate(250,250);

ÓÉÓÚ´ËʱÄãµÄͼÏñ»¹Êǿհף¬ËùÒÔÐèÒªÓÃijЩɫ²ÊÌîÂúËü¡£µ«Ê×ÏÈÐèÒªÓÃImageColorAllocate()º¯Êý°´ÕÕÑÕÉ«µÄRGBֵΪÿÖÖÑÕɫȷ¶¨Ãû×Ö¡£º¯ÊýµÄ¸ñʽΪImageColorAllocate([image], [red], [green], [blue])¡£ÈçÊÇÌìÀ¶É«£¬Ó¦Ê¹Óãº

$skyblue = ImageColorAllocate($newImg,136,193,255);



½Ó×Å£¬ÓÃImageFill()º¯ÊýΪͼÏñÌî³äÒÔÉÏÑÕÉ«¡£Êµ¼ÊÉÏImageFill()º¯ÊýÓжà¸ö°æ±¾£¬ÈçImageFillRectangle(), ImageFillPolygon()µÈµÈ¡£Îª¼òµ¥Æð¼û£¬²ÉÓÃImageFill()º¯Êý½øÐÐÑÕÉ«Ìî³ä£¬¸ñʽÈçÏ£º

ImageFill([image], [start x point], [start y point], [color])

ImageFill($newImg,0,0,$skyblue);

×îºó£¬´´½¨×îÖÕͼÏñ²¢ÆÆ»µÍ¼ÏñÁ÷ÒÔÊÍ·ÅÄÚ´æ²¢ÔÚ½áÊøºóÕûÀíϵͳ£º

ImagePNG($newImg);

ImageDestroy($newImg); ?>

ÄãµÄ´úÂëÓ¦¸Ã¿´ÆðÀ´ÏñÕâÑù£º

<? header ("Content-type: image/png");

$newImg = ImageCreate(250,250);

$skyblue = ImageColorAllocate($newImg,136,193,255);

ImageFill($newImg,0,0,$skyblue);

ImagePNG($newImg);

ImageDestroy($newImg);

?>

Èç¹ûµ÷Óýű¾skyblue.php ²¢ÓÃ×Ô¼ºµÄä¯ÀÀÆ÷·ÃÎÊËü£¬¾Í»á¿´µ½Ò»¸ö250*250ÏñËØµÄÀ¶É«PNGͼÏñ¡£

»¹¿ÉÒÔÓÃͼÏñ´´½¨º¯Êý´¦ÀíͼÏñ£¬Èç¶Ô´óͼÏñ´´½¨µÄËõÂÔͼµÈ¡£

¼ÙÉèÄã´òËãÎªÄ³Í¼Æ¬ÖÆ×÷Ò»¸ö35*35ÏñËØ´óСµÄËõÂÔͼ¡£ËùÒª×öµÄ¼´´´½¨Ò»¸öеÄ35*35ÏñËØ´óСͼÏñ£»²¢²úÉúÒ»¸ö°üº¬Ô­Ê¼Í¼ÏñÄÚÈݵÄͼÏñÁ÷£»È»ºó¸Ä±äԭʼͼÏñµÄ´óС£¬²¢½«Æä·Åµ½ÐµĿհ×ͼÏñÖÐÈ¥¡£

´ïµ½´ËÄ¿µÄµÄ¹Ø¼üº¯ÊýÊÇImageCopyResized(),£¬¸ñʽÈçÏÂËùʾ£ºImageCopyResized([new image handle]£¬[original image handle]£¬[new image X]£¬[new Image Y]£¬[original image X]£¬[original image Y]£¬ [new image X]£¬ [new image Y]£¬[original image X]£¬[original image Y])£»

×¢ÊÍÔÚ´úÂëÏÂÃæ£º

<? /* ·¢ËÍÎļþÍ·ÒÔʹä¯ÀÀÆ÷ÖªµÀÎļþÀàÐÍ*/

header("Content-type: image/png");

/* ÉèÖñäÁ¿±£´æÐÂͼƬ³¤¿í*/

$newWidth = 35;

$newHeight = 35;

/* ÒÔ¸ø¶¨³¤ºÍ¿í´´½¨¿Õ°×ÐÂͼƬ */

$newImg = ImageCreate($newWidth,$newHeight);

/* ´Óԭʼ´óͼ»ñÈ¡Êý¾Ý */

$origImg = ImageCreateFromPNG("test.png");

/* ¸´ÖƸü¸Ä³ß´çºóµÄͼƬ¡£Ê¹Óú¯Êý ImageSX() ¼° ImageSY »ñȡԭʼͼƬµÄx¼°x³ß´ç */

ImageCopyResized($newImg,$origImg,0,0,0,0,$newWidth,$newHeight,ImageSX($origImg),ImageSY($origImg));

/* ´´½¨×îÖÕͼƬ²¢Çå¿ÕÄÚ´æ */

ImagePNG($newImg);

ImageDestroy($newImg); ?>

Èç¹ûµ÷Óýű¾resized.php²¢Ê¹ÓÃä¯ÀÀÆ÷·ÃÎ