Witam,

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
        $result .= substr('BM', 0, 2);
        $result .=  pack ('VvvV', $bfSize, 0, 0, $bfOffBits);
        $result .= pack ('VVVvvVVVVVV', 40, $w, '-'.$h, 1, 16, 3, $biSizeImage, 0, 0, 0, 0);
        $numpad = $biStride - $biBPLine;
 
 
		  $result .= pack('VVV',63488,2016,31);
		  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));
				$result .= pack('v',$col);
            }
            for ($i = 0; $i < $numpad; ++$i)
                $result .= pack ('C', 0);
        }
        if($filename==""){
        }
        else
        {
            $file = fopen($filename, "wb");
            fwrite($file, $result);
            fclose($file);
        }
        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.