webmaster webmastering webdesign

Jesteś tutaj: webmade.org >> porady >> php + mysql

Zapis grafiki jako tekst

autor: Patryk 'yarpo' Jar, ostatnia modyfikacja: 2007-02-26

szukaj: zmiana grafiki na tekst zmiana grafiki na tekst grafika grafika biblioteka GD biblioteka GD PHP PHP

Oto krótki skrypt, za pomocą którego można zamienić dowolną grafikę na tekst. Już tłumaczę – każdy piksel będzie prezentowany przez jeden znak.

<?php
$obraz = "plik.jpg"; // obrazek do zamiany
$size = getimagesize($obraz);
$szer = $size[0]; // zczytujemy szerokość i wysokość
$wys = $size[1];
$im = ImageCreateFromJpeg($obraz);

/* W 2 pętlach zczytujemy kolory poszczególnych pixeli i wyświetlamy je jako znak && w kodzie HTML. Pętle są dwie, ponieważ po zczytaniu każdego wiersza należy przejść do następnego aż do zczytania koloru ostatniego pixela */

do {
	do {
		$rgb = ImageColorAt($im, $i, $j); // funkcja zczytująca kolor pixela
		$r = ($rgb >> 16) & 0xFF;
		$g = ($rgb >> 8) & 0xFF;
		$b = $rgb & 0xFF;
		$kolor = str_pad(dechex($r),2, "0", STR_PAD_LEFT) . str_pad(dechex($g),2, "0", STR_PAD_LEFT) . str_pad(dechex($b),2, "0", STR_PAD_LEFT);
		/* powyższa linijka tworzy kolor w formacie RRGGBB w zapisie szesnastkowym */
echo '<b style="color:#'.$kolor.';">&&</b>'; // teraz rysujemy pseudo-pixel
		$i++; 
		} while ($i < $szer);
	$j++;
	$i=0;
	echo "<br />\n";
} while ($j < $wys);
?>

W ten sposób otrzymamy kod HTML przedstawiający pojedyncze pixele w postaci '&&'. Każda para tych znaków będzie mieć taki kolor jaki ma odpowiadający im pixel w grafice.

Warto by jeszcze dodać w sekcji head strony coś takiego:

<style type="text/css">
b {
 font: normal 5px Arial, sans-serif;
}
p {
 margin: 10px;
 padding 0;
}
</style>

Patryk 'yarpo' Jar

Osoby czytające tę publikację przeglądały również:

Chcesz zostać programistą?

Poznaj 6 kroków do efektywnej
nauki programowania!

 

valid XHTML
valid CSS
© 2004-2008 copyright by webmade.org