$bildBreite * $bildHoehe - 4) exit("Last zu groß"); $lastGroesseFeld[0] = ($lastGroesse >> 24) & 0xFF; $lastGroesseFeld[1] = ($lastGroesse >> 16) & 0xFF; $lastGroesseFeld[2] = ($lastGroesse >> 8) & 0xFF; $lastGroesseFeld[3] = $lastGroesse & 0xFF; $img = imagecreatefromstring(file_get_contents($bildDatei)); for($x=0; $x<$bildBreite; $x++) { for($y=0; $y<$bildHoehe; $y++) { $index = $x * $bildHoehe + $y; if($index < $lastGroesse + 4) { if($index < 4) $zahl = $lastGroesseFeld[$index]; else $zahl = ord($lastString[$index-4]); $rot = (($zahl & 0xC0) >> 6) << 16; $gruen = (($zahl & 0x38) >> 3) << 8; $blau = $zahl & 0x07; $lastFarbe = $rot | $gruen | $blau; $bildFarbe = imagecolorat($img, $x, $y); $bildFarbe = ($bildFarbe & 0xFCF8F8) | $lastFarbe; imagesetpixel($img, $x, $y, $bildFarbe); } } } $bildDateiFeld = mb_split("\.", $bildDatei); imagepng($img, $bildDateiFeld[0] . "_neu." . $bildDateiFeld[1]); imagedestroy($img); ?>