molto banaleDD
devi leggere 3 byte per volta...e poi stampare il punto ^^
magari i primi due byte indicano l'altezza e la larghezza della matrice[ovviamente al max cosi vengono 255 pixel x 255 pixel, ma con facilità si può cambiare questo...)
il codice non l'ho provato, ma a livello logico è corretto, se ti da errori prova a risolverli ed in caso posta quicodice:<?php $file = fopen('img.img'); // Leggo larghezza ed altezza $w = ord(fread($file, 1)); $h = ord(fread($file, 1)); // Inizializzo le coordinate X e Y dei punti $x = 0; $y = 0; // Creo un immagine truecolor dato che uso un format a 24 bit (ovvero 3 byte( $image = imagecreatetruecolor($w, $h); // Entro in un while e leggo a blocchi di 3 byte il file while(feof($file)) { // Leggo 3 byte $cPixel = fread($file, 3); // Imposto il colore partendo dai miei 3 byte $gdColor = imagecolorallocate($image, ord($cPixel{0}), ord($cPixel{1}), ord($cPixel{2})); // Imposto il pixel imagesetpixel($x, $y, $gdColor); // Mi sposto avanti di un punto nella riga $x++; // Se ho superato la larghezza, vado a capo if ($x > $w) { $x = 1; $y++; } } // Chiudo il file fclose($file); // Stampo a video l'immagine imagejpeg($image); ?>
può essere fatto in TANTI altri modi cmq![]()

DD
[ovviamente al max cosi vengono 255 pixel x 255 pixel, ma con facilità si può cambiare questo...)
Rispondi quotando