Class image { Public $ info = array (); Function _ construct () { ! Extension_loaded ('gd ') & exit ("www.111cn.net prompt: The server environment does not support gd library "); Return true; } Function image () { $ This->__ construct (); } Function thumb ($ image, $ thumb_width = 300, $ thumb_height = 225) { $ Info = $ this-> info ($ image ); $ Scale = min (1, min ($ thumb_width/$ info ['width'], $ thumb_height/$ info ['height']); // proportional scaling $ Thumb_width = intval ($ info ['width'] * $ scale ); $ Thumb_height = intval ($ info ['height'] * $ scale ); $ Createfunc = 'imagecreatefrom '. ($ info ['type'] = 'jpg '? 'Jpeg ': $ info ['type']); $ Im = $ createfunc ($ image ); $ Thumb_im = $ info ['type']! = 'GIF' & function_exists ('imagecreatetruecolor ')? Imagecreatetruecolor ($ thumb_width, $ thumb_height): imagecreate ($ thumb_width, $ thumb_height ); Imagecopyresampled ($ thumb_im, $ im, 0, 0, 0, $ thumb_width, $ thumb_height, $ info ['width'], $ info ['height']); If ($ info ['type'] = 'GIF' | $ info ['type'] = 'PNG ') { $ Bgcolor = imagecolorallocate ($ thumb_im, 0,255, 0 ); Imagecolortransparent ($ thumb_im, $ bgcolor ); } $ Imagefunc = 'image'. ($ info ['type'] = 'jpg '? 'Jpeg ': $ info ['type']); $ Thumbname = 'thumb _ '. $ info ['name'].'. '. $ info ['type']; $ Imagefunc ($ thumb_im, $ info ['path']. $ thumbname ); Imagedestroy ($ im ); Imagedestroy ($ thumb_im ); Return $ info ['path']. $ thumbname; } Function watermark ($ image, $ pos = 9, $ watermarkimg = 'Images/watermark.gif ', $ pct = 65, $ text = '', $ w_font = 5, $ w_color = '# ff0000 ') { $ Imageinfo = $ this-> info ($ image ); $ Source_w = $ imageinfo ['width']; $ Source_h = $ imageinfo ['height']; $ Imagecreatefunc = 'imagecreatefrom '. ($ imageinfo ['type'] = 'jpg '? 'Jpeg ': $ imageinfo ['type']); $ Im = $ imagecreatefunc ($ image ); If (! Empty ($ watermarkimg) & file_exists ($ watermarkimg) // add an image watermark { $ Iswaterimage = true; $ Watermarkinfo = $ this-> info ($ watermarkimg ); $ Width = $ watermarkinfo ['width']; $ Height = $ watermarkinfo ['height']; $ Watermarkcreatefunc = 'imagecreatefrom '. ($ watermarkinfo ['type'] = 'jpg '? 'Jpeg ': $ watermarkinfo ['type']); $ Watermark_im = $ watermarkcreatefunc ($ watermarkimg ); } Else // add a text watermark { $ Iswaterimage = false; If (! Empty ($ w_color) & strlen ($ w_color) = 7) { $ R = hexdec (substr ($ w_color, 1, 2 )); $ G = hexdec (substr ($ w_color, 3, 2 )); $ B = hexdec (substr ($ w_color, 5, 2 )); } $ Temp = imagettfbbox (ceil ($ w_font * 2.5), 0, 'fonts/alger. Ttf', $ text ); $ Width = $ temp [2]-$ temp [6]; $ Height = $ temp [3]-$ temp [7]; Unset ($ temp ); } Switch ($ pos) { Case 0: $ Wx = mt_rand (0, ($ source_w-$ width )); $ Wy = mt_rand (0, ($ source_h-$ height )); Break; Case 1: $ Wx = 5; $ Wy = 5; Break; Case 2: $ Wx = ($ source_w-$ width)/2; $ Wy = 5; Break; Case 3: $ Wx = $ source_w-$ width-5; $ Wy = 5; Break; Case 4: $ Wx = 5; $ Wy = ($ source_h-$ height)/2; Break; Case 5: $ Wx = ($ source_w-$ width)/2; $ Wy = ($ source_h-$ height)/2; Break; Case 6: $ Wx = $ source_w-$ width-5; $ Wy = ($ source_h-$ height)/2; Break; Case 7: $ Wx = 5; $ Wy = $ source_h-$ height-5; Break; Case 8: $ Wx = ($ source_w-$ width)/2; $ Wy = $ source_h-$ height-5; Break; Default: $ Wx = $ source_w-$ width-5; $ Wy = $ source_h-$ height-5; Break; } If ($ iswaterimage) { If ($ imageinfo ['type'] = 'PNG '){ Imagecopy ($ im, $ watermark_im, $ wx, $ wy, 0, 0, $ width, $ height ); } Else { Imagecopymerge ($ im, $ watermark_im, $ wx, $ wy, 0, 0, $ width, $ height, $ pct ); } } Else { Imagestring ($ im, $ w_font, $ wx, $ wy, $ text, imagecolorallocate ($ im, $ r, $ g, $ B )); } $ Imagefunc = 'image'. ($ imageinfo ['type'] = 'jpg '? 'Jpeg ': $ imageinfo ['type']); $ Imagefunc ($ im, $ image ); Imagedestroy ($ im ); Return true; } Function info ($ image) { $ Info = array (); $ Info ['size'] = filesize ($ image ); $ Imageinfo = getimagesize ($ image ); $ Info ['width'] = $ imageinfo [0]; $ Info ['height'] = $ imageinfo [1]; $ Info ['width _ height'] = $ imageinfo [3]; $ Info ['Mime '] = $ imageinfo ['Mime']; Unset ($ imageinfo ); $ Imageinfo = pathinfo ($ image ); $ Info ['path'] = $ imageinfo ['dirname']. '/'; $ Info ['type'] = strtolower ($ imageinfo ['extension']); // image type, excluding '.' $ Info ['name'] = $ imageinfo ['filename']; Unset ($ imageinfo, $ name ); $ This-> info = $ info; Return $ info; } } |