Zmagam się z takim problemem, mam plik w formacie jpeg, chce go przerobić na bmp z 8 bitową głębią kolorów czyli po 256 na każde RGB;
Kodzik znaleziony w internetach który przerabia na 16 bit;
<?php //convert jpeg to 16 bit bmp $jpgImageFile = '51.jpg'; $newFileName = 'NEW_BMP'; $imageSource = imagecreatefromjpeg($jpgImageFile); imagebmp($imageSource,$newFileName.".bmp"); function imagebmp(&$im, $filename = "") { if (!$im) return false; $w = imagesx($im); $h = imagesy($im); $result = ''; if (!imageistruecolor($im)) { $tmp = imagecreatetruecolor($w, $h); imagecopy($tmp, $im, 0, 0, 0, 0, $w, $h); imagedestroy($im); $im = & $tmp; } $biBPLine = $w * 2; $biStride = ($biBPLine + 3) & ~3; $biSizeImage = $biStride * $h; $bfOffBits = 66; $bfSize = $bfOffBits + $biSizeImage; //BITMAPFILEHEADER's size + BITMAPINFOHEADER size $numpad = $biStride - $biBPLine; for ($y = 0; $y < $h; ++$y) { for ($x = 0; $x < $w; ++$x) { $rgb = imagecolorat($im, $x, $y); $r24 = ($rgb >> 16) & 0xFF; $g24 = ($rgb >> 8) & 0xFF; $b24 = $rgb & 0xFF; $col = ((($r24 >> 3) << 11) | (($g24 >> 2) << 5) | ($b24 >> 3)); } for ($i = 0; $i < $numpad; ++$i) } if($filename==""){ } else { } return true; } ?>
Na głównej stronie projektu PHP w pierwszym komentarzu jest kod na przeróbkę dla bmp 24 bit;
http://lv.php.net/manual/en/ref.image.php#63689
Zwraca się z prośbą o pomoc w przeróbce na 8 bitów.