请下载附件中的源码,不要直接复制 (已下载 640 次)
<?php
//////////////////////////////////////////////////////////////
/// phpThumb() by James Heinrich <info@silisoftware.com> //
//OSPHP.com.CN
// available at http://phpthumb.sourceforge.net ///
//////////////////////////////////////////////////////////////
/// //
// phpthumb.ico.php - .ICO output format functions //
// ///
//PHP开源代码
//////////////////////////////////////////////////////////////
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;
//PHP开源代码
$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';
//PHP开源代码
}
}
// mask bits are 32-bit aligned per scanline
while (strlen($icANDmask[$key][$y]) % 32) {
$icANDmask[$key][$y] .= '0';
//oSPHP.COM.CN
}
}
$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;
//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.
//oSPHP.COM.CN
$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;
//开源代码OSPhP.COm.CN
$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]);
//oSPHP.COM.CN
$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文件


















