Преобразование изображений в HTML средствами PHP

Добавлен: 

Иногда, может возникнуть потребность не использовать изображения на своём сайте, иногда, вместо маленьких изображений элементов дизайна проще было бы использовать просто HTML код, или вы хотели бы усложнить задачу тем, кто хочет скопировать изображения с вашего сайта, а изображения представленные в виде кода, обычным способом не скопируешь. Особенно полезно, это было бы для генерации капчи, так как изображение представленное в виде HTML будет сложнее прочитать и обработать парсерами.

Но как можно заменить картинку кодом?

Ниже представлен PHP скрипт, который преобразует изображение в HTML таблицу с таким же количеством ячеек, как пикселей в изображении, с шириной и высотой в один пиксель и цвета соответствующего цвету пикселя по нужным координатам.

Данный скрипт может “на лету” преобразовывать изображения, но не рекоменуеться использовать данный метод для изображений большого разрешения, так как прорисовка такой большой таблицы сильно накружает процессор клиента.

<?php
$image = 'image.png';

//получаем разрешение изображения и тип
$imagesize = getimagesize($image) ;
$width = $imagesize['0'];
$height = $imagesize['1'];

//создаём изображение
switch ($imagesize['2']) {
case 1: $imagecreate = imagecreatefromgif($image); break;
case 2: $imagecreate = imagecreatefromjpeg($image); break;
case 3: $imagecreate = imagecreatefrompng($image); break;
case 6: $imagecreate = imagecreatefromwbmp($image); break;
}

print('<style type="text/css">
.im{
border-spacing:0px;
padding:0px;
width:1px;
height:1px;
}
</style>
<table style="border-spacing:0px; padding:0px;">');

//цикл для перебора строк
for($i = 0; $i < $height; $i++) {
print('<tr>');
//цикл для перебора колонок
for($n = 0; $n < $width; $n++) {
//получаем цвет пикселя
$color_index = imagecolorat($imagecreate, $n, $i);
$color_pixel = imagecolorsforindex($imagecreate, $color_index);
//преобразуем RGB в #HEX
$r = dechex($color_pixel['red']);
If (strlen($r) < 2) $r = '0'.$r;
$g = dechex($color_pixel['green']);
If (strlen($g) < 2) $g = '0'.$g;
$b = dechex($color_pixel['blue']);
If (strlen($b) < 2) $b = '0'.$b;
$color = "#$r$g$b";
print("<td class=\"im\" style=\"background-color:$color;\"></td>");
}
print('</tr>');
}
print('</table>');
imagedestroy($imagecreate);
?>

 

Не забываем оставлять комментарии и отзывы, нам важно ваше мнение!

А еcли статья Вам очень понравилась и Вы считаете, что она достойна внимания. Тогда просто поделитесь ею, в социальной сети:


Интересная рекламма:


Возможно вам будет интересно
Преобразование цвета RGB в #HEX (десятичную в шестнадцатеричную) средствами PHP Скачать бесплатно IrfanView v 4.35 - программа для просмотра и редактирования изображений Скрипт уменьшения размера изображений на PHP, с масштабированием

Добавление комментария

Имя -

E-mail -





Читать в Яндекс.Ленте

Яндекс.Метрика


Power by xDroid. Copyright © 2009 - 2017 VEB.name
Копирование информации только с обратной ссылкой
Время генерации страницы : 0.0112 сек.