[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: while пару вопросов
Эли4ка
Можно ли циклом while проверить каждый пиксель в изображении?



Спустя 25 минут, 52 секунды (16.12.2011 - 05:34) TranceIT написал(а):
Чисто теоретически да.
Но если практически, то я на 99% уверен, что задачу, которая перед вами стоит, можно решить совершенно другим способом... Опишите нам ее.

Спустя 13 минут, 37 секунд (16.12.2011 - 05:47) bulgakov написал(а):
Цитата
Можно ли циклом while проверить каждый пиксель в изображении?

Можно, а на что вы хотите проверить? Вы понимаете что даже картинка 100x100 это 10000 проверок в цикле while? Оно вам надо? Да и если рассуждать логически на что можно проверить пиксель? На расположение в какой-то определенной области или же на соответствие какому-то цвету или диапазону цветов, все это можно сделать без применения такой топорной работы.

Спустя 2 минуты, 11 секунд (16.12.2011 - 05:49) Игорь_Vasinsky написал(а):
а что 10 000 в while - это так страшно?

Спустя 13 секунд (16.12.2011 - 05:50) bulgakov написал(а):
Неужели среди этого обилия функций вы не нашли то что вам нужно и ничего не придумали лучше чем while? Который совершенно не подходит для этой задачи.

Спустя 41 секунда (16.12.2011 - 05:50) bulgakov написал(а):
Цитата
а что 10 000 в while - это так страшно?

Я же просто для примера привел, а если и побольше картинка? 1000x1000?

Спустя 4 минуты, 39 секунд (16.12.2011 - 05:55) Эли4ка написал(а):
Задача состоит в том,чтобы узнать какие цвета преобладают в изображении..а на каком-то форуме видела высказывание ,что цикл while это универсальный цикл,и использовать его можно везде без потерь..

Спустя 1 минута, 11 секунд (16.12.2011 - 05:56) Игорь_Vasinsky написал(а):
ну и что. тут в любом случае для обхода нужно цикл для обхода юзать, если работать с массивом - то самый шустрый - foreach

Спустя 2 минуты, 57 секунд (16.12.2011 - 05:59) Эли4ка написал(а):
Игорь_Vasinsky
это понятно..а что с моим случаем то делать?

Спустя 10 минут, 51 секунда (16.12.2011 - 06:10) Nikitian написал(а):
Полагаю, если интерполировать картинку до размеров 1х1, то получится как раз цвет, наиболее близкий к преобладающему. smile.gif

Спустя 19 минут, 18 секунд (16.12.2011 - 06:29) Эли4ка написал(а):
Nikitian
не совсем поняла..можно попонятней.

Спустя 11 минут, 27 секунд (16.12.2011 - 06:41) Nikitian написал(а):
На примере. Пишем из мануала простенький скрипт:

<?php
// The file
$filename = 'test.jpg';
// Content type
header('Content-Type: image/jpeg');

// Get new dimensions
list($width, $height) = getimagesize($filename);
$new_width = 1;
$new_height = 1;

// Resample
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

// Output
imagejpeg($image_p, null, 100);

И смотрим что он выдаёт из картинки nikitian.ru/test.jpg тут nikitian.ru/tt.php
Берёте из пиксельной картинки цвет единственного пикселя - это и будет наиболее близкий цвет к преобладающему.

Спустя 3 часа, 44 минуты, 54 секунды (16.12.2011 - 10:26) Эли4ка написал(а):
Nikitian,спасибо за пример,но ведь фактически это получается уменьшенная до 1 пикселя копия изображения верно?

Спустя 4 часа, 16 минут, 24 секунды (16.12.2011 - 14:42) Nikitian написал(а):
Конечно. Зато это самый быстрый способ получитm преобладающий цвет с некоторой погрешностью. Хотя, ка правило, в работе с цветами погрешность допустима.

Спустя 15 часов, 46 минут, 21 секунда (17.12.2011 - 06:28) Эли4ка написал(а):
Nikitian
понятно,спасибо.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.