index.php <div class="codetitle"><a style="CURSOR: pointer" data="74274" class="copybut" id="copybut74274" onclick="doCopy('code74274')"> 代码如下:<div class="codebody" id="code74274"> <?PHP $output=""; if(isset($_GET['action'])&&$_GET['action']=='make'){ if(isset($_FILES['upimage']['tmp_name'])&&$_FILES['upimage']['tmp_name']&&is_uploaded_file($_FILES['upimage']['tmp_name'])){ if($_FILES['upimage']['type']>210000){ echo"你上传的文件体积超过了限制最大不能超过200K"; exit(); } $fileext=array("image/pjpeg","image/gif","image/x-png"); if(!in_array($_FILES['upimage']['type'],$fileext)){ echo"你上传的文件格式不正确仅支持jpg,gif,png"; exit(); } if($im=@imagecreatefrompng($_FILES['upimage']['tmp_name'])or$im=@imagecreatefromgif($_FILES['upimage']['tmp_name'])or$im=@imagecreatefromjpeg($_FILES['upimage']['tmp_name'])){ $imginfo=@getimagesize($_FILES['upimage']['tmp_name']); if(!is_array($imginfo)){ echo"图形格式错误!"; } switch($_POST['size']){ case1; $resize_im=@imagecreatetruecolor(16,16); $size=16; break; case2; $resize_im=@imagecreatetruecolor(32,32); $size=32; break; case3; $resize_im=@imagecreatetruecolor(48,48); $size=48; break; default; $resize_im=@imagecreatetruecolor(32,32); $size=32; break; } imagecopyresampled($resize_im,$im,$size,$imginfo[0],$imginfo[1]); include"phpthumb.ico.php"; $icon=newphpthumb_ico(); $gd_image_array=array($resize_im); $icon_data=$icon->GD2ICOstring($gd_image_array); $filename="temp/".date("Ymdhis").rand(1,1000).".ico"; if(file_put_contents($filename,$icon_data)){ $output="生成成功!请点右键->另存为保存到本地 <ahref="".$filename.""target="_blank">点击下载"; } }else{ echo"生成错误请重试!"; } } } ?> ICO图标在线转换
ICO图标在线转换 <formaction="?action=make"method="post"enctype='multipart/form-data'> <table> <tr> <td>请上传你要转换的图片 支持格式png,jpg,gif</td> </tr> <tr> <td><inputtype="file"name="upimage"size="30"></td> </tr> <tr> <td>目标尺寸: <inputtype="radio"name="size"value="1"id="s1"><labelfor="s1">1616 <inputtype="radio"name="size"value="2"id="s2"checked><labelfor="s2">3232 <inputtype="radio"name="size"value="3"id="s3"><labelfor="s3">4848 </td> </tr> <tr> <tdalign="right"><inputtype="submit"value="生 成"></td> </tr> <?PHP if($output){ echo"<tr><td><divstyle="border:1pxsolid#D8D8B2;background-color:#FFFFDD;padding:10px">".$output."</td></tr>"; } ?> <tr> <td><divstyle="color:#cccccc;font-size:11px;">Poweredby<ahref="http://veryim.com"style="color:#cccccc">非常爱漫</td> </tr> </table>
phpthumb.ico.php <div class="codetitle"><a style="CURSOR: pointer" data="65988" class="copybut" id="copybut65988" onclick="doCopy('code65988')"> 代码如下:<div class="codebody" id="code65988"> <?php ////////////////////////////////////////////////////////////// ///phpThumb()byJamesHeinrichinfo@silisoftware.com// //availableathttp://phpthumb.sourceforge.net/// ////////////////////////////////////////////////////////////// ///// //phpthumb.ico.php-.ICOoutputformatfunctions// ///// ////////////////////////////////////////////////////////////// classphpthumb_ico{functionphpthumb_ico(){ returntrue; } functionGD2ICOstring(&$gd_image_array){ foreach($gd_image_arrayas$key=>$gd_image){$ImageWidths[$key]=ImageSX($gd_image); $ImageHeights[$key]=ImageSY($gd_image); $bpp[$key]=ImageIsTrueColor($gd_image)?32:24; $totalcolors[$key]=ImageColorsTotal($gd_image);$icXOR[$key]=''; for($y=$ImageHeights[$key]-1;$y>=0;$y--){ for($x=0;$x<$ImageWidths[$key];$x++){ $argb=$this->GetPixelColor($gd_image,$x,$y); $a=round(255((127-$argb['alpha'])/127)); $r=$argb['red']; $g=$argb['green']; $b=$argb['blue'];if($bpp[$key]==32){ $icXOR[$key].=chr($b).chr($g).chr($r).chr($a); }elseif($bpp[$key]==24){ $icXOR[$key].=chr($b).chr($g).chr($r); }if($a<128){ @$icANDmask[$key][$y].='1'; }else{ @$icANDmask[$key][$y].='0'; } } //maskbitsare32-bitalignedperscanline while(strlen($icANDmask[$key][$y])%32){ $icANDmask[$key][$y].='0'; } } $icAND[$key]=''; foreach($icANDmask[$key]as$y=>$scanlinemaskbits){ for($i=0;$i<strlen($scanlinemaskbits);$i+=8){ $icAND[$key].=chr(bindec(str_pad(substr($scanlinemaskbits,$i,8),8,'0',STR_PAD_LEFT))); } }}foreach($gd_image_arrayas$key=>$gd_image){ $biSizeImage=$ImageWidths[$key]$ImageHeights[$key]($bpp[$key]/8);//BITMAPINFOHEADER-40bytes $BitmapInfoHeader[$key]=''; $BitmapInfoHeader[$key].="x28x00x00x00";//DWORDbiSize; $BitmapInfoHeader[$key].=$this->LittleEndian2String($ImageWidths[$key],4);//LONGbiWidth; //ThebiHeightmemberspecifiesthecombined //heightoftheXORandANDmasks. $BitmapInfoHeader[$key].=$this->LittleEndian2String($ImageHeights[$key]2,4);//LONGbiHeight; $BitmapInfoHeader[$key].="x01x00";//WORDbiPlanes; $BitmapInfoHeader[$key].=chr($bpp[$key])."x00";//wBitCount; $BitmapInfoHeader[$key].="x00x00x00x00";//DWORDbiCompression; $BitmapInfoHeader[$key].=$this->LittleEndian2String($biSizeImage,4);//DWORDbiSizeImage; $BitmapInfoHeader[$key].="x00x00x00x00";//LONGbiXPelsPerMeter; $BitmapInfoHeader[$key].="x00x00x00x00";//LONGbiYPelsPerMeter; $BitmapInfoHeader[$key].="x00x00x00x00";//DWORDbiClrUsed; $BitmapInfoHeader[$key].="x00x00x00x00";//DWORDbiClrImportant; } $icondata="x00x00";//idReserved;//Reserved(mustbe0) $icondata.="x01x00";//idType;//ResourceType(1foricons) $icondata.=$this->LittleEndian2String(count($gd_image_array),2);//idCount;//Howmanyimages?$dwImageOffset=6+(count($gd_image_array)16); foreach($gd_image_arrayas$key=>$gd_image){ //ICONDIRENTRYidEntries[1];//Anentryforeachimage(idCountof'em)$icondata.=chr($ImageWidths[$key]);//bWidth;//Width,inpixels,oftheimage $icondata.=chr($ImageHeights[$key]);//bHeight;//Height,oftheimage $icondata.=chr($totalcolors[$key]);//bColorCount;//Numberofcolorsinimage(0if>=8bpp) $icondata.="x00";//bReserved;//Reserved(mustbe0)$icondata.="x01x00";//wPlanes;//ColorPlanes $icondata.=chr($bpp[$key])."x00";//wBitCount;//Bitsperpixel$dwBytesInRes=40+strlen($icXOR[$key])+strlen($icAND[$key]); $icondata.=$this->LittleEndian2String($dwBytesInRes,4);//dwBytesInRes;//Howmanybytesinthisresource?$icondata.=$this->LittleEndian2String($dwImageOffset,4);//dwImageOffset;//Whereinthefileisthisimage? $dwImageOffset+=strlen($BitmapInfoHeader[$key]); $dwImageOffset+=strlen($icXOR[$key]); $dwImageOffset+=strlen($icAND[$key]); }foreach($gd_image_arrayas$key=>$gd_image){ $icondata.=$BitmapInfoHeader[$key]; $icondata.=$icXOR[$key]; $icondata.=$icAND[$key]; }return$icondata; }functionLittleEndian2String($number,$minbytes=1){ $intstring=''; while($number>0){ $intstring=$intstring.chr($number&255); $number>>=8; } returnstr_pad($intstring,$minbytes,"x00",STR_PAD_RIGHT); }functionGetPixelColor(&$img,$y){ if(!is_resource($img)){ returnfalse; } return@ImageColorsForIndex($img,@ImageColorAt($img,$y)); }}?>
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|