
请下载附件中的源码,不要直接复制 (已下载 564 次)
<?php
//////////////////////////////////////////////////////////////
/// phpThumb() by James Heinrich <info@silisoftware.com> //
//开源代码OSPhP.COm.CN
// available at http://phpthumb.sourceforge.net ///
//////////////////////////////////////////////////////////////
/// //
// phpthumb.ico.php - .ICO output format functions //
// ///
//开源代码OSPhP.COm.CN
//////////////////////////////////////////////////////////////
class phpthumb_ico {
function phpthumb_ico() {
return true;
}
function GD2ICOstring(&$gd_image_array) {
foreach ($gd_image_array as $key => $gd_image) {
//OSPHP.com.CN
$ImageWidths[$key] = ImageSX($gd_image);
$ImageHeights[$key] = ImageSY($gd_image);
$bpp[$key] = ImageIsTrueColor($gd_image) ? 32 : 24;
//OSPHP.COm.CN
$totalcolors[$key] = ImageColorsTotal($gd_image);
$icXOR[$key] = '';
for ($y = $ImageHeights[$key] - 1; $y >= 0; $y--) {
//开源代码OSPhP.COm.CN
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'];
if ($bpp[$key] == 32) {
//oSPHP.COM.CN
$icXOR[$key] .= chr($b).chr($g).chr($r).chr($a);
} elseif ($bpp[$key] == 24) {
//OSPHP.COm.CN
$icXOR[$key] .= chr($b).chr($g).chr($r);
}
if ($a < 128) {
//oSPHP.COM.CN
@$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';
//PHP开源代码
}
}
$icAND[$key] = '';
foreach ($icANDmask[$key] as $y => $scanlinemaskbits) {
for ($i = 0; $i < strlen($scanlinemaskbits); $i += 8) {
//OSPHP.com.CN
$icAND[$key] .= chr(bindec(str_pad(substr($scanlinemaskbits, $i, 8), 8, '0', STR_PAD_LEFT)));
//oSPHP.COM.CN
}
}
}
foreach ($gd_image_array as $key => $gd_image) {
$biSizeImage = $ImageWidths[$key] * $ImageHeights[$key] * ($bpp[$key] / 8);
//开源代码OSPHP.COM.Cn
// BITMAPINFOHEADER - 40 bytes
$BitmapInfoHeader[$key] = '';
$BitmapInfoHeader[$key] .= "x28x00x00x00"; // DWORD biSize;
//PHP开源代码
$BitmapInfoHeader[$key] .= phpthumb_functions::LittleEndian2String($ImageWidths[$key], 4); // LONG biWidth;
// The biHeight member specifies the combined
// height of the XOR and AND masks.
//OSPHP.COm.CN
$BitmapInfoHeader[$key] .= phpthumb_functions::LittleEndian2String($ImageHeights[$key] * 2, 4); // LONG biHeight;
$BitmapInfoHeader[$key] .= "x01x00"; // WORD biPlanes;
//PHP开源代码
$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;
//PHP开源代码
$BitmapInfoHeader[$key] .= "x00x00x00x00"; // DWORD biClrImportant;
}
$icondata = "x00x00"; // idReserved; // Reserved (must be 0)
//OsPHP.COM.CN
$icondata .= "x01x00"; // idType; // Resource Type (1 for icons)
$icondata .= phpthumb_functions::LittleEndian2String(count($gd_image_array), 2); // idCount; // How many images?
//开源代码OSPhP.COm.CN
$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)
//oSPHP.COM.CN
$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)
//开源代码OSPhP.COm.CN
$icondata .= "x01x00"; // wPlanes; // Color Planes
$icondata .= chr($bpp[$key])."x00"; // wBitCount; // Bits per pixel
//OSPHP.COM.Cn开源
$dwBytesInRes = 40 + strlen($icXOR[$key]) + strlen($icAND[$key]);
$icondata .= phpthumb_functions::LittleEndian2String($dwBytesInRes, 4); // dwBytesInRes; // How many bytes in this resource?
//OSPHP.COM.Cn开源
$icondata .= phpthumb_functions::LittleEndian2String($dwImageOffset, 4); // dwImageOffset; // Where in the file is this image?
$dwImageOffset += strlen($BitmapInfoHeader[$key]);
//PHP开源代码
$dwImageOffset += strlen($icXOR[$key]);
$dwImageOffset += strlen($icAND[$key]);
}
foreach ($gd_image_array as $key => $gd_image) {
//oSPHP.COM.CN
$icondata .= $BitmapInfoHeader[$key];
$icondata .= $icXOR[$key];
$icondata .= $icAND[$key];
}
//开源OSPhP.COM.CN
return $icondata;
}
}
?>
相关日志
PHP MSN Class MSN机器人使用,或者给MSN、雅虎通发消息
PhpGrid
Php On Trax 国外开源框架
PHPDevShell 国外开源高速的应用程序开发框架
Cacti基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测
PHP MSN Class MSN机器人使用,或者给MSN、雅虎通发消息
PhpGrid
Php On Trax 国外开源框架
PHPDevShell 国外开源高速的应用程序开发框架
Cacti基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测
中查看更多“php在线生成ico代码”相关内容
中查看更多“php在线生成ico代码”相关内容
中查看更多“php在线生成ico代码”相关内容
中查看更多“php在线生成ico代码”相关内容
中查看更多“php在线生成ico代码”相关内容
中查看更多“php在线生成ico代码”相关内容
中查看更多“php在线生成ico代码”相关内容
中查看更多“php在线生成ico代码”相关内容最后编辑: shuguang 编辑于2007/11/14 09:57
PHP读取excel文件


















