From 3fd7bf16c3b79253e1202e452d4bc83fb800c858 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Thu, 7 Jan 2021 23:05:41 +0900 Subject: [PATCH] Remove unnecessary BMP loading library (use imagebmp() instead) --- common/autoload.php | 1 - common/libraries/bmp.php | 257 --------------------------------------- 2 files changed, 258 deletions(-) delete mode 100644 common/libraries/bmp.php diff --git a/common/autoload.php b/common/autoload.php index 04bf3c3f1..ed0257251 100644 --- a/common/autoload.php +++ b/common/autoload.php @@ -85,7 +85,6 @@ $GLOBALS['RX_AUTOLOAD_FILE_MAP'] = array_change_key_case(array( 'XmlLangParser' => 'classes/xml/XmlLangParser.class.php', 'XmlParser' => 'classes/xml/XmlParser.class.php', 'XeXmlParser' => 'classes/xml/XmlParser.class.php', - 'Bmp' => 'common/libraries/bmp.php', 'Ftp' => 'common/libraries/ftp.php', 'Tar' => 'common/libraries/tar.php', 'CryptoCompat' => 'common/libraries/cryptocompat.php', diff --git a/common/libraries/bmp.php b/common/libraries/bmp.php deleted file mode 100644 index 64a375091..000000000 --- a/common/libraries/bmp.php +++ /dev/null @@ -1,257 +0,0 @@ -=0; $y--) - { - for ($x=0; $x<$wid; $x++) - { - $rgb = imagecolorat($img, $x, $y); - fwrite($f, byte3($rgb)); - } - fwrite($f, $wid_pad); - } - fclose($f); - } - else - { - foreach ($header AS $h) - { - echo $h; - } - - //save pixels - for ($y=$hei-1; $y>=0; $y--) - { - for ($x=0; $x<$wid; $x++) - { - $rgb = imagecolorat($img, $x, $y); - echo self::byte3($rgb); - } - echo $wid_pad; - } - } - } - - public static function getimagesize($filename) - { - $f = fopen($filename, "rb"); - - //read header - $header = fread($f, 54); - $header = unpack( 'c2identifier/Vfile_size/Vreserved/Vbitmap_data/Vheader_size/' . - 'Vwidth/Vheight/vplanes/vbits_per_pixel/Vcompression/Vdata_size/'. - 'Vh_resolution/Vv_resolution/Vcolors/Vimportant_colors', $header); - - if ($header['identifier1'] != 66 or $header['identifier2'] != 77) - { - return false; - } - - if (!in_array($header['bits_per_pixel'], array(24, 32, 8, 4, 1))) - { - return false; - } - - $bps = $header['bits_per_pixel']; //bits per pixel - $wid2 = ceil(($bps/8 * $header['width']) / 4) * 4; - $colors = pow(2, $bps); - - $wid = $header['width']; - $hei = $header['height']; - - return array($wid, $hei, 'BMP'); - } - - public static function imagecreatefrombmp($filename) - { - $f = fopen($filename, "rb"); - - //read header - $header = fread($f, 54); - $header = unpack( 'c2identifier/Vfile_size/Vreserved/Vbitmap_data/Vheader_size/' . - 'Vwidth/Vheight/vplanes/vbits_per_pixel/Vcompression/Vdata_size/'. - 'Vh_resolution/Vv_resolution/Vcolors/Vimportant_colors', $header); - - if ($header['identifier1'] != 66 or $header['identifier2'] != 77) - { - return false; - } - - if (!in_array($header['bits_per_pixel'], array(24, 32, 8, 4, 1))) - { - return false; - } - - $bps = $header['bits_per_pixel']; //bits per pixel - $wid2 = ceil(($bps/8 * $header['width']) / 4) * 4; - $colors = pow(2, $bps); - - $wid = $header['width']; - $hei = $header['height']; - - $img = imagecreatetruecolor($header['width'], $header['height']); - - //read palette - if ($bps < 9) - { - for ($i=0; $i<$colors; $i++) - { - $palette[] = self::undword(fread($f, 4)); - } - } - else - { - if ($bps == 32) - { - imagealphablending($img, false); - imagesavealpha($img, true); - } - $palette = array(); - } - - //read pixels - for ($y=$hei-1; $y>=0; $y--) - { - $row = fread($f, $wid2); - $pixels = self::str_split2($row, $bps, $palette); - for ($x=0; $x<$wid; $x++) - { - self::makepixel($img, $x, $y, $pixels[$x], $bps); - } - } - fclose($f); - - return $img; - } - - private static function str_split2($row, $bps, $palette) - { - switch ($bps) - { - case 32: - case 24: return str_split($row, $bps/8); - case 8: $out = array(); - $count = strlen($row); - for ($i=0; $i<$count; $i++) - { - $out[] = $palette[ ord($row[$i]) ]; - } - return $out; - case 4: $out = array(); - $count = strlen($row); - for ($i=0; $i<$count; $i++) - { - $roww = ord($row[$i]); - $out[] = $palette[ ($roww & 240) >> 4 ]; - $out[] = $palette[ ($roww & 15) ]; - } - return $out; - case 1: $out = array(); - $count = strlen($row); - for ($i=0; $i<$count; $i++) - { - $roww = ord($row[$i]); - $out[] = $palette[ ($roww & 128) >> 7 ]; - $out[] = $palette[ ($roww & 64) >> 6 ]; - $out[] = $palette[ ($roww & 32) >> 5 ]; - $out[] = $palette[ ($roww & 16) >> 4 ]; - $out[] = $palette[ ($roww & 8) >> 3 ]; - $out[] = $palette[ ($roww & 4) >> 2 ]; - $out[] = $palette[ ($roww & 2) >> 1 ]; - $out[] = $palette[ ($roww & 1) ]; - } - return $out; - } - } - - private static function makepixel($img, $x, $y, $str, $bps) - { - switch ($bps) - { - case 32 : $a = ord($str[0]); - $b = ord($str[1]); - $c = ord($str[2]); - $d = 256 - ord($str[3]); //TODO: gives imperfect results - $pixel = $d*256*256*256 + $c*256*256 + $b*256 + $a; - imagesetpixel($img, $x, $y, $pixel); - break; - case 24 : $a = ord($str[0]); - $b = ord($str[1]); - $c = ord($str[2]); - $pixel = $c*256*256 + $b*256 + $a; - imagesetpixel($img, $x, $y, $pixel); - break; - case 8 : - case 4 : - case 1 : imagesetpixel($img, $x, $y, $str); - break; - } - } - - private static function byte3($n) - { - return chr($n & 255) . chr(($n >> 8) & 255) . chr(($n >> 16) & 255); - } - - private static function undword($n) - { - $r = unpack("V", $n); - return $r[1]; - } - - private static function dword($n) - { - return pack("V", $n); - } - - private static function word($n) - { - return pack("v", $n); - } -}