加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php在线生成ico文件的代码

发布时间:2020-05-25 00:34:46 所属栏目:PHP 来源:互联网
导读:php在线生成ico文件的代码

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">32
32
<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"&gt;非常爱漫</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));
}}?>

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读