|
¥un¦w¸Ë¤@¨Ç²Ä¤T¤èªº®wÀɨè㦳¤@©wªº´X¦óª¾ÃÑ¡A´N¥i¥H§Q¥ÎPHP¨Ó³Ð«Ø©M³B²z¹Ï¹³¤F¡C§Q¥ÎPHP³Ð«Ø°ÊºA¹Ï¹³¬O¬Û·í®e©öªº¤@¥ó¨Æ±¡¡C¤U±¡Aµ§ªÌ±N¸Ô²Ó¤¶²Ð¦p¦ó¹ê²{¡C
[³Q¾B¸n¼s§i]¡@¡@¦b¨Ï¥Î°ò¥»ªº¹Ï¹³³Ð«Ø¨ç¼Æ¤§«e¡A»Ýn¦w¸ËGD®wÀÉ¡C¦pªGn¨Ï¥Î»PJPEG¦³Ãöªº¹Ï¹³³Ð«Ø¨ç¼Æ¡AÁÙ»Ýn¦w¸Ëjpeg-6b¡A¦pªGn¦b¹Ï¹³¤¤¨Ï¥ÎType 1«¬¦rÅé¡A«h¥²¶·¦w¸Ët1lib¡C
¡@¡@¦b«Ø¥ß¹Ï¹³³Ð«ØÀô¹Ò¤§«e¡AÁÙ»Ýn°µ¤@¨Ç·Ç³Æ¤u§@¡Cº¥ý¡A¦w¸Ët1lib±µµÛ¦w¸Ëjpeg-6b¡AµM«á¦A¦w¸ËGD®wÀÉ¡C¦b¦w¸Ë®É¤@©wn«ö³oùص¹©wªº¶¶§Ç¶i¦æ¦w¸Ë¡A¦]¬°¦b½sĶGD¤J®w®É·|¥Î¨ìjpeg-6b¡A¦pªG¨S¦³¦w¸Ëjpeg-6b¡A¦b½sĶ®É´N·|¥X¿ù¡C
¡@¡@¦b¦w¸Ë§¹³o¤TÓ¤¸¥ó«á¡AÁÙ»Ýn«·s°t¸m¤@¦¸PHP¡A³o¤]¬O§A¹ï±Ä¥ÎDSO¤è¦¡¦w¸ËPHP·P¨ì¼yƪº¦a¤è¤§¤@¡C¹B¦æmake clean¡AµM«á¦b·í«eªº°t¸m¤¤²K¥[¤U±ªº¤º®e¡G
--with-gd=[/path/to/gd]
--with-jpeg-dir=[/path/to/jpeg-6b]
--with-t1lib=[/path/to/t1lib]
¡@¡@§¹¦¨²K¥[«á°õ¦æmake©R¥O¡AµM«á¦A°õ¦æmake install©R¥O¡A«·s±Ò°ÊApache«á¹B¦æphpinfo()¨ÓÀˬd¤@¤U·sªº³]¸m¬O§_¥Í®Ä¤F¡C²{¦b¡A§ÚÌ´N¥i¥H¶}©l¹Ï¹³³Ð«Ø¤u§@¤F¡C
¡@¡@®Ú¾Ú©Ò¦w¸ËªºGD®wÀɪºª©¥»±N¨M©w§A¬O§_¯à³Ð«ØGIF©ÎPNG®æ¦¡ªº¹Ï§ÎÀÉ¡C¦pªG¦w¸Ëªº¬Ogd-1.6©Î¥H«eªºª©¥»¡A¥i¥H¨Ï¥ÎGIF®æ¦¡ªºÀɦý¤£¯à³Ð«ØPNG®æ¦¡¡A¦pªG¦w¸Ëªº¬Ogd-1.6¥H«áªºª©¥»¡A¥i¥H³Ð«ØPNGÀɦý¤£¯à³Ð«ØGIF®æ¦¡ªºÀÉ¡C
¡@¡@³Ð«Ø¤@´T²³æªº¹Ï¹³¤]»Ýn¥Î¨ì³\¦hªº¨ç¼Æ¡A§Ú̱N¤@¨B¤@¨B¦a¶i¦æ»¡©ú¡C
¡@¡@¦b¤U±ªº¨Ò¤l¤¤¡A§Ú̱N³Ð«Ø¤@ÓPNG®æ¦¡ªº¹Ï¹³ÀÉ¡A¤U±ªº¥N½X¬O¤@Ó¥]§t©Ò³Ð«Øªº¹Ï¹³ªºMIMEÃþ«¬ªºÀY³¡¡G
¡Õ? header ("Content-type: image/png");
¡@¡@¨Ï¥ÎImageCreate()³Ð«Ø¤@Ó¥NªíªÅ¥Õ¹Ï¹³ªºÅܼơA³oÓ¨ç¼Æn¨D¥H¹Ï¤¸¬°³æ¦ìªº¹Ï¹³¤j¤pªº°Ñ¼Æ¡A¨ä®æ¦¡¬OImageCreate(x_size, y_size)¡C¦pªGn³Ð«Ø¤@Ó¤j¤p¬°250¡Ñ250ªº¹Ï¹³¡A´N¥i¥H¨Ï¥Î¤U±ªº»y¥y¡G
$newImg = ImageCreate(250,250);
¡@¡@¥Ñ©ó¹Ï¹³ÁÙ¬OªÅ¥Õªº¡A¦]¦¹§A¥i¯à·|§Æ±æ¥Î¤@¨Ç±m¦â¨Ó¶ñ¥R¥¦¡C§A»Ýnº¥ý¨Ï¥ÎImageColorAllocate()¨ç¼Æ¥Î¨äRGBȬ°³oºØÃC¦â«ü©w¤@Ó¦W¦r¡A³o¤@¨ç¼Æªº®æ¦¡¬°ImageColorAllocate([image], [red], [green], [blue])¡C¦pªGn©w¸q¤ÑÂŦâ¡A¥i¥H¨Ï¥Î¦p¤Uªº»y¥y¡G
$skyblue = ImageColorAllocate($newImg,136,193,255);
¡@¡@±µ¤U¨Ó¡A»Ýn¨Ï¥ÎImageFill()¨ç¼Æ¥Î³oºØÃC¦â¶ñ¥R³oӹϹ³¡AImageFill()¨ç¼Æ¦³´XÓª©¥»¡A¨Ò¦pImageFillRectangle()¡BImageFillPolygon()µ¥¡C¬°Â²³æ°_¨£¡A§Ú̳q¹L¦p¤Uªº®æ¦¡¨Ï¥ÎImageFill()¨ç¼Æ¡G
ImageFill([image], [start x point], [start y point], [color])
ImageFill($newImg,0,0,$skyblue);
¡@¡@³Ì«á¡A¦b¹Ï¹³«Ø¥ß«áÄÀ©ñ¹Ï¹³±±¨î½X©M©Ò¦û¥Îªº°O¾ÐÅé¡G
ImagePNG($newImg);
ImageDestroy($newImg); ?¡Ö
¡@¡@³o¼Ë¡A³Ð«Ø¹Ï¹³ªº¥þ³¡¥N½X¦p¤U©Ò¥Ü¡G
¡Õ? header ("Content-type: image/png");
$newImg = ImageCreate(250,250);
$skyblue = ImageColorAllocate($newImg,136,193,255);
ImageFill($newImg,0,0,$skyblue);
ImagePNG($newImg);
ImageDestroy($newImg);
?¡Ö
¡@¡@¦pªG§â³oÓ¸}¥»ÀÉ«O¦s¬°skyblue.php¡A¨Ã¥Î¬yÄý¾¹³X°Ý¥¦¡A§ÚÌ·|¬Ý¨ì¤@Ó¤ÑÂŦ⪺250¡Ñ250ªºPNG®æ¦¡ªº¹Ï¹³¡C
¡@¡@§ÚÌÁÙ¥i¥H¨Ï¥Î¹Ï¹³³Ð«Ø¨ç¼Æ¹ï¹Ï¹³¶i¦æ³B²z¡A¨Ò¦p§â¤@Ó¸û¤j¹Ï¹³§@¦¨¤@Ó¤p¹Ï¹³¡G
¡@¡@°²³]§A¦³¤@´T¹Ï¹³¡A·Q±q¤¤µô°Å¥X¤@Ó35¡Ñ35¤j¤pªº¹Ï¹³¡C§A©Ò»Ýn§@ªº¬O³Ð«Ø¤@Ó35¡Ñ35¤j¤pªºªÅ¥Õ¹Ï¹³¡A³Ð«Ø¤@Ó¥]§tì¨Ó¹Ï¹³ªº¹Ï¹³¬y¡AµM«á§â¤@Ó¸g¹L½Õ¾ã¤j¤pªºì¨Óªº¹Ï¹³©ñ¨ì·sªºªÅ¥Õ¹Ï¹³¤¤¡C
¡@¡@n§¹¦¨³o¤@¥ô°ÈªºÃöÁä¨ç¼Æ¬OImageCopyResized()¡A¥¦n¨Dªº®æ¦¡¦p¤U©Ò¥Ü¡G
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])¡C
¡Õ? /* µo°e¤@ÓÀY³¡¡A¥H«KÅý¬yÄý¾¹ª¾¹D¸ÓÀÉ©Ò¥]§tªº¤º®eÃþ«¬*/
header("Content-type: image/png");
/* «Ø¥ß«O¦s·s¹Ï¹³°ª«×©M¼e«×ªºÅܼÆ*/
$newWidth = 35;
$newHeight = 35;
/* «Ø¥ßµ¹©w°ª«×©M¼e«×ªº·sªºªÅ¥Õ¹Ï¹³*/
$newImg = ImageCreate($newWidth,$newHeight);
/* ±qì¨Ó¸û¤jªº¹Ï¹³¤¤±o¨ì¸ê®Æ*/
$origImg = ImageCreateFromPNG("test.png");
/*«þ¨©½Õ¾ã¤j¤p«áªº¹Ï¹³¡A¨Ï¥ÎImageSX()¡BImageSY()±o¨ìì¨Óªº¹Ï¹³¦bX¡BY¤è±¤Wªº¤j¤p */
ImageCopyResized($newImg,$origImg,0,0,0,0,$newWidth,$newHeight,ImageSX($origImg),ImageSY($origImg));
/*³Ð«Ø§Æ±æ±o¨ìªº¹Ï¹³¡AÄÀ©ñ°O¾ÐÅé */
ImagePNG($newImg);
ImageDestroy($newImg); ?¡Ö
¡@¡@¦pªG§â³o¤@¤p¬q¸}¥»«O¦s¬°resized.php¡AµM«á¥Î¬yÄý¾¹¹ï¥¦¶i¦æ³X°Ý¡A´N·|¬Ý¨ì¤@Ó35¡Ñ35¤j¤pªºPNG®æ¦¡ªº¹Ï¹³¡C |
|