// BITMAPINFOHEADER - 40 bytes $BitmapInfoHeader[$key] = ""; $BitmapInfoHeader[$key] .= "x28x00x00x00"; // DWORD biSize; $BitmapInfoHeader[$key] .= $this->LittleEndian2String($ImageWidths[$key], 4); // LONG biWidth; // The biHeight member specifies the combined // height of the XOR and AND masks. $BitmapInfoHeader[$key] .= $this->LittleEndian2String($ImageHeights[$key] * 2, 4); // LONG biHeight; $BitmapInfoHeader[$key] .= "x01x00"; // WORD biPlanes; $BitmapInfoHeader[$key] .= chr($bpp[$key])."x00"; // wBitCount; $BitmapInfoHeader[$key] .= "x00x00x00x00"; // DWORD biCompression; $BitmapInfoHeader[$key] .= $this->LittleEndian2String($biSizeImage, 4); // DWORD biSizeImage; $BitmapInfoHeader[$key] .= "x00x00x00x00"; // LONG biXPelsPerMeter; $BitmapInfoHeader[$key] .= "x00x00x00x00"; // LONG biYPelsPerMeter; $BitmapInfoHeader[$key] .= "x00x00x00x00"; // DWORD biClrUsed; $BitmapInfoHeader[$key] .= "x00x00x00x00"; // DWORD biClrImportant; }
$icondata = "x00x00"; // idReserved; // Reserved (must be 0) $icondata .= "x01x00"; // idType; // Resource Type (1 for icons) $icondata .= $this->LittleEndian2String(count($gd_image_array), 2); // idCount; // How many images?
$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)
$icondata .= chr($ImageWidths[$key]); // bWidth; // Width, in pixels, of the image $icondata .= chr($ImageHeights[$key]); // bHeight; // Height, in pixels, of the image $icondata .= chr($totalcolors[$key]); // bColorCount; // Number of colors in image (0 if >=8bpp) $icondata .= "x00"; // bReserved; // Reserved ( must be 0)
$icondata .= "x01x00"; // wPlanes; // Color Planes $icondata .= chr($bpp[$key])."x00"; // wBitCount; // Bits per pixel
$dwBytesInRes = 40 + strlen($icXOR[$key]) + strlen($icAND[$key]); $icondata .= $this->LittleEndian2String($dwBytesInRes, 4); // dwBytesInRes; // How many bytes in this resource?
$icondata .= $this->LittleEndian2String($dwImageOffset, 4); // dwImageOffset; // Where in the file is this image? $dwImageOffset += strlen($BitmapInfoHeader[$key]); $dwImageOffset += strlen($icXOR[$key]); $dwImageOffset += strlen($icAND[$key]); }