Работа с картинками

Статус
В этой теме нельзя размещать новые ответы.

LEXAlForpostl

Мой дом здесь!
Регистрация
21 Май 2008
Сообщения
766
Реакции
228
Здравствуйте.
Есть картинка размером 100х120 пикселей.
Как узнать цвет одного определенного пикселя?
И второй вопрос.
Есть 2 картинки одинакового размера 100х120 пикселей, как их сравнить, идентичны ли они?
 
  • Заблокирован
  • #2
цвет определенного пикселя:
PHP:
<?php
 $x = 15;
 $y = 22;
 $image = imagecreatefromstring(file_get_contents("logo.png"));
 extract(imagecolorsforindex($image, imagecolorat($image, $x, $y)), EXTR_PREFIX_ALL, 'cl');
imagedestroy($image);
 // Нужные цвета:
 echo "Красный: {$cl_red}<br />Зеленый: {$cl_green}<br />Жёлтый: {$cl_blue}<br />";
 ?>
 
И второй вопрос.
Есть 2 картинки одинакового размера 100х120 пикселей, как их сравнить, идентичны ли они?

PHP:
if (file_get_contents("logo1.png")==file_get_contents("logo2.png")) print "Картинки идентичны"; else print "Картинки не идентичны";
 
У меня тоже есть маленький вопросик по сортировке картинок по их размерам по разным папкам. Под размерами понимается ширина X пикселей и высота Y пикселей. Скрипт быдет распихивать картинки по условиям x<100 у<100 в папку images1, x>100 но x<300 и y>100 но y<300 в папку images2 и так далее. Принцип я думаю, понятен. Может быть у кого есть готовое решение под рукой? Поиск на форуме и в Яндексе ничего не показал.
 
ищет картинки и сортирует по списку условий
PHP:
<?php
$dir = './'; # стартовая директория поиска картинок
$img_mask='(.png|.gif|.jpg)'; # обрабатываемые расширения

function dir_sc($dir) { $items=glob($dir.'*'); for ($i=0;$i<count($items);$i++) {
if (is_dir($items[$i])) { $add=glob($items[$i].'/*'); $items=array_merge($items,$add); } } return $items; }
$all_files = dir_sc($dir); foreach ($all_files as $file):
if (is_file($file)) { if (preg_match($img_mask,strtolower($file))) {
$size=getimagesize($file); unset($x,$y); $x=$size[0]; $y= $size[1];

# типовой блок - условия через 'AND'
if($x<100 AND $y<100): $save_dir='./image1/'; // условие и имя папки для 1 сохранения
is_dir($save_dir) OR mkdir($save_dir); // если папки нет - создать
$rename=str_replace('\\','/',(realpath($save_dir).'/'.basename($file))); rename($file,$rename); // перенос файла
echo "<b>{$file}</b> {$size[3]} moved to {$save_dir}<br />\n"; // log
endif;

# копипаст и изменение условий блока
if($x>100 AND $x<300 AND $y>100 AND $y<300): $save_dir='./image2/';
is_dir($save_dir) OR mkdir($save_dir);
$rename=str_replace('\\','/',(realpath($save_dir).'/'.basename($file))); rename($file,$rename);
echo "<b>{$file}</b> {$size[3]} moved to {$save_dir}<br />\n";
endif;


} }
endforeach;
?>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху