代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
PHP
】
php在线生成ico代码
作者:
javas2s.com
/ 发布于
2011/4/26
/
834
<div><?php ////////////////////////////////////////////////////////////// /// phpThumb() by James Heinrich <<a href="mailto:info@silisoftware.com">info@silisoftware.com</a>> //</div> <div> // available at <a href="http://phpthumb.sourceforge.net">http://phpthumb.sourceforge.net</a> /// ////////////////////////////////////////////////////////////// /// // // phpthumb.ico.php - .ICO output format functions // // ///</div> <div> //////////////////////////////////////////////////////////////</div> <div> class phpthumb_ico {</div> <div> function phpthumb_ico() { return true; } <div> function GD2ICOstring(&$gd_image_array) { foreach ($gd_image_array as $key => $gd_image) { //开源OSPhP.COM.CN</div> <div> $ImageWidths[$key] = ImageSX($gd_image); $ImageHeights[$key] = ImageSY($gd_image); $bpp[$key] = ImageIsTrueColor($gd_image) ? 32 : 24;</div> <div> $totalcolors[$key] = ImageColorsTotal($gd_image);</div> <div> $icXOR[$key] = ''; for ($y = $ImageHeights[$key] - 1; $y >= 0; $y--) {</div> <div> for ($x = 0; $x < $ImageWidths[$key]; $x++) { $argb = phpthumb_functions::GetPixelColor($gd_image, $x, $y); //OSPHP.com.CN $a = round(255 * ((127 - $argb['alpha']) / 127)); $r = $argb['red']; //OSPHP.com.CN $g = $argb['green']; $b = $argb['blue'];</div> <div> if ($bpp[$key] == 32) { //OsPHP.COM.CN $icXOR[$key] .= chr($b).chr($g).chr($r).chr($a); } elseif ($bpp[$key] == 24) {</div> <div> $icXOR[$key] .= chr($b).chr($g).chr($r); } <div> if ($a < 128) {</div> <div> @$icANDmask[$key][$y] .= '1'; } else { @$icANDmask[$key][$y] .= '0'; //OSPHP.COm.CN } } // mask bits are 32-bit aligned per scanline 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)));</div> <div> } } <div> } <div> foreach ($gd_image_array as $key => $gd_image) { $biSizeImage = $ImageWidths[$key] * $ImageHeights[$key] * ($bpp[$key] / 8);</div> <div></div> <div> // BITMAPINFOHEADER - 40 bytes $BitmapInfoHeader[$key] = ''; $BitmapInfoHeader[$key] .= "x28x00x00x00"; // DWORD biSize; //开源代码OSPhP.COm.CN $BitmapInfoHeader[$key] .= phpthumb_functions::LittleEndian2String($ImageWidths[$key], 4); // LONG biWidth; // The biHeight member specifies the combined // height of the XOR and AND masks.</div> <div> $BitmapInfoHeader[$key] .= phpthumb_functions::LittleEndian2String($ImageHeights[$key] * 2, 4); // LONG biHeight; $BitmapInfoHeader[$key] .= "x01x00"; // WORD biPlanes; //OSPHP.COm.CN $BitmapInfoHeader[$key] .= chr($bpp[$key])."x00"; // wBitCount; $BitmapInfoHeader[$key] .= "x00x00x00x00"; // DWORD biCompression; //OsPHP.COM.CN $BitmapInfoHeader[$key] .= phpthumb_functions::LittleEndian2String($biSizeImage, 4); // DWORD biSizeImage; $BitmapInfoHeader[$key] .= "x00x00x00x00"; // LONG biXPelsPerMeter; //开源代码OSPHP.COM.Cn $BitmapInfoHeader[$key] .= "x00x00x00x00"; // LONG biYPelsPerMeter; $BitmapInfoHeader[$key] .= "x00x00x00x00"; // DWORD biClrUsed; $BitmapInfoHeader[$key] .= "x00x00x00x00"; // DWORD biClrImportant; } <div> $icondata = "x00x00"; // idReserved; // Reserved (must be 0) //PHP开源代码 $icondata .= "x01x00"; // idType; // Resource Type (1 for icons) $icondata .= phpthumb_functions::LittleEndian2String(count($gd_image_array), 2); // idCount; // How many images? //PHP开源代码</div> <div> $dwImageOffset = 6 + (count($gd_image_array) * 16); foreach ($gd_image_array as $key => $gd_image) { // ICONDIRENTRY idEntries[1]; // An entry for each image (idCount of 'em)</div> <div></div> <div> $icondata .= chr($ImageWidths[$key]); // bWidth; // Width, in pixels, of the image $icondata .= chr($ImageHeights[$key]); // bHeight; // Height, in pixels, of the image //开源代码OSPhP.COm.CN $icondata .= chr($totalcolors[$key]); // bColorCount; // Number of colors in image (0 if >=8bpp) $icondata .= "x00"; // bReserved; // Reserved ( must be 0)</div> <div></div> <div> $icondata .= "x01x00"; // wPlanes; // Color Planes $icondata .= chr($bpp[$key])."x00"; // wBitCount; // Bits per pixel //开源OSPhP.COM.CN</div> <div> $dwBytesInRes = 40 + strlen($icXOR[$key]) + strlen($icAND[$key]); $icondata .= phpthumb_functions::LittleEndian2String($dwBytesInRes, 4); // dwBytesInRes; // How many bytes in this resource?</div> <div></div> <div> $icondata .= phpthumb_functions::LittleEndian2String($dwImageOffset, 4); // dwImageOffset; // Where in the file is this image? $dwImageOffset += strlen($BitmapInfoHeader[$key]);</div> <div> $dwImageOffset += strlen($icXOR[$key]); $dwImageOffset += strlen($icAND[$key]); } <div> foreach ($gd_image_array as $key => $gd_image) { //开源代码OSPHP.COM.Cn $icondata .= $BitmapInfoHeader[$key]; $icondata .= $icXOR[$key]; $icondata .= $icAND[$key]; } <div> return $icondata; } <div>} <div>?> </div>
试试其它关键字
生成ico
同语言下
.
用net匹配并替换iOS标准的emoji表情符号
.
处理带Emoji表情的的字符串
.
获取微信昵称时 过滤特殊字符
.
通过判断上传文件的头字符来判断文件的类型
.
模拟百度URL加密解密算法
.
以太坊检查地址是否合法
.
实现crontab解析类
.
获取每个月的开始和结束时间
.
图片上传工具类
.
APP手机应用信息采集
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
javas2s.com
贡献的其它代码
(
3
)
.
php在线生成ico代码
.
河内塔
.
定时器的动画
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3