Модераторы: Aliance, skyboy, MoLeX, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разложение JPEG на пиксели, средствами php 
:(
    Опции темы
rol
Дата 24.1.2006, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 24.2.2005

Репутация: нет
Всего: нет



Возможно ли средствами php разложение JPEG на пиксели на серверной стороне?
Я новичок в php поэтому даже не знаю правильно ли запостил вопрос...

Задача простая - разложить jpeg, присланный на сервер на пиксели и пересчитать количество пикселей одного цвета, затем построить гистограмму по имеющимся в jpg цветам...

PM MAIL   Вверх
BIG BROTHER
Дата 24.1.2006, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 9.12.2004
Где: Россия, Москва

Репутация: нет
Всего: 4



Необычная, однако, задача smile

ImageColorAt(); получить цвет пикселя по коордиранам

т.е. берем высоты и ширину запускаем цикл, бежим по каждому пикселю строки, пишем в массив(как вариант), переходим на след. строки и так до конца smile

Это сообщение отредактировал(а) BIG BROTHER - 24.1.2006, 18:59
--------------------
Mess with the best, die like the rest
PM MAIL ICQ   Вверх
rol
Дата 25.1.2006, 00:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 24.2.2005

Репутация: нет
Всего: нет



Хм... Значит можно все-таки smile
Нужно сделать... smile

А задача простая - согласно исследованиям ученых, все шедевры искусства, созданные человечеством при разложении на составляющие и применении к результату математического анализа, подчиняются т.н. нормальному закону распределения (матанализ, кто знаком ;))
Так вот, разложив изображение на пиксели, подсчитав количество пикселей всех используемых цветов, можно составить гистограмму вида: длина волны цвета / количество в процентах и сравнить полученную гистограмму с гистограммой, постороенной из тех же цветов, но с количеством каждого цвета в соответствии с нормальным законом распределения.
Таким образом, можно создать инструмент, помогающий дизайнеру сбалансировать цветовую гамму своего "шедевра" smile

Ничего, что я так наукообразно? smile просто небольшая идея для наполнения своего сайта дополнительным любопытным контентом ;)
PM MAIL   Вверх
BIG BROTHER
Дата 25.1.2006, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 9.12.2004
Где: Россия, Москва

Репутация: нет
Всего: 4



Так в чем проблема? Как подсчитать цвета я тебе сказал.
Цитата(rol @ 25.1.2006, 00:36 Найти цитируемый пост)

просто небольшая идея для наполнения своего сайта дополнительным любопытным контентом ;)

Это должен быть очень и очень узкоспециализированный портал.
--------------------
Mess with the best, die like the rest
PM MAIL ICQ   Вверх
rol
Дата 25.1.2006, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 24.2.2005

Репутация: нет
Всего: нет



Цитата

Это должен быть очень и очень узкоспециализированный портал.


Ничего подобного, любому дизайнерскому порталу такая штука пригодится smile
Это же интересный критерий оценки своего творения smile
Другое дело, что к этому инструменту нужо будет простое и толковое описание smile

Да, кстати, спасибо большой брат, поблагодарить-то и забыл.... smile smile

Это сообщение отредактировал(а) rol - 31.1.2006, 13:24
PM MAIL   Вверх
CyClon
Дата 11.3.2006, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: нет
Всего: 4



Задача интерестная блин smile))) Точнее цель, ради чего все это smile В общем сначала узнаем размеры картинки. Далее:

Код
<?php

$image = "http://site.ru/image.jpg";

$width = 1024;
$height = 768;

for ($h = 1; $h < $height; $h++) // Проходим изображение построчно
{
    for ($w = 1; $w < $width; $w++) // Проходим каждый пиксель на строке $h
    {
        $image[$w][$h] = ImageColorAt($image, $w, $h); // Записываем в массив цвет
    }
}

?>


ЗЫ: Функцию ImageColorAt не юзал, синтаксис на угадsmile

Это сообщение отредактировал(а) CyClon - 11.3.2006, 20:49


--------------------
user posted image
PM   Вверх
Ciber SLasH
Дата 11.3.2006, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



CyClon а какой смысл было писать, если вопрос уже давно решён? smile
PM   Вверх
CyClon
Дата 12.3.2006, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: нет
Всего: 4



Фиг значет smile


--------------------
user posted image
PM   Вверх
rol
Дата 22.5.2006, 04:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 24.2.2005

Репутация: нет
Всего: нет



Вопрос не решен, просто я пока оставил в покое эту тему, много другой интересной работы smile

Да и идея эта была ситюминутна, скажем так, одна из многих любопытных, которую вроде бы и хочется решить и поюзать результат, проверить на жизнеспособность.... но времени не хватает.
Вот если бы это нужно было моему проекту - давно бы решил smile

В принципе, нужно просто построить график по нормальному закону из имеющихся в изображении цветов, и наложить на него график, построеный из изображения, цвета нужно расположить по порядку, как в спектре, возможно нужно учитывать отсутствующие в изображении цвета...  нужно пробовать и смотреть на результат, оценивать на гениальность smile
Помню только про один эталон, который по этому самому нормальному закону распределения написан - это Мона Лиза smile

Так что дизайнерским порталам рекомендую все-таки создать эту программу - реально может поднять посещаемость smile 
PM MAIL   Вверх
szz
Дата 23.5.2006, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: нет
Всего: 33



А разве автолевел не делает что-то подобное? Анализирует, находит цветовое и уровневое смещения - и восстанавлиает их.   Только у вас - как бы восстановление по какому-нибудь существующему семплу, например картине ван гога т.е. чтоб в обрабатываемой картинке смещение стало таким - как в картине-семпле.
    Я уже свой автолевел написал - могу под вас заточить если желаете  smile

Добавлено @ 17:58 
Цитата

Помню только про один эталон, который по этому самому нормальному закону распределения написан - это Мона Лиза 

  Эа столько лет она три раза вызвела и перецвела - там оригинального цвета не осталось совсем smile
 Откровенно говоря, судить о гениальности картины, на мой взгляд (большого ценителя изобразительного исскустваsmile ) лишь только по цветовом балансу (скажу даже больше - вообще его учитывать!) - неверно.
  Вспомните Egona Schiele например smile

Добавлено @ 17:59 
Голубой период Пикассо!!!

Добавлено @ 18:03 
Густав Клим! Он уж тольно проверку на цветовой балланс бы не вынес  smile 
  полюбуйтесь!

Добавлено @ 18:05 
какая красота!
 Все, больше не флудю smile 


--------------------
PM   Вверх
rol
Дата 23.5.2006, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 24.2.2005

Репутация: нет
Всего: нет



Цитата


А разве автолевел не делает что-то подобное? Анализирует, находит цветовое и уровневое смещения - и восстанавлиает их.   Только у вас - как бы восстановление по какому-нибудь существующему семплу, например картине ван гога т.е. чтоб в обрабатываемой картинке смещение стало таким - как в картине-семпле.
    Я уже свой автолевел написал - могу под вас заточить если желаете  


Не, это не то smile, нормальный закон распределения - это закон природы, описаный фрмулами, в матанализе есть точная формула smile , Знающие не дадут соврать smile
Цитата

Я уже свой автолевел написал - могу под вас заточить если желаете  

Да было бы неплохо smile Заодно проверим расхождение теории с практикой... Идея изначально возникла после прочтения статьи в журнале, в ней писали, что ученые провели анализ мировых шедевров (уж не знаю сколько они шедевров анализировали), и обнаружилось , что шедевры не чужды smile как раз нормальному закону распределения smile

Цитата

 Эа столько лет она три раза вызвела и перецвела 

В том то и дело smile выцвели-то все цвета (хотя утверждение как минимум спорное ), тоесть соотношение цветов, тоесть их распределение на картине сохранилось, что подтверждает частично теорию...

 И еще, я не великий ценитель изобразительного искусства, да и разговор о другом ;)
Понятно, что оценивать произведение с точки зрения цвета просто глупо, черно-белая фотография в пример, квадрат малевича в пример, просто изображение женской груди в пример....
Разговор о другом...  возникают задачи, когда вот нужно уравновесить именно цветовой баланс в картине или изображении, которое с точки зрения формы идеально, вот именно в этом случае этот инструмент незаменим smile)) 
Вот о чем разговор.....
Но это частности, в практике, как жесткий и приземленный способ раскрутки - эта программа привлечет посетителей на любой дизайнерский сайт как целевая аудитория (!!!), новички-дизайнеры, как я ( и не только ) будут пастоянно проверять соотношение цветов с помощью этого инструмента smile

Именно это меня и интересует в первую очередь, как ни банально это прозвучит smile)))))


 
PM MAIL   Вверх
szz
Дата 23.5.2006, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: нет
Всего: 33



Цитата(rol @  23.5.2006,  19:40 Найти цитируемый пост)
Не, это не то smile, нормальный закон распределения - это закон природы, описаный фрмулами, в матанализе есть точная формула smile , Знающие не дадут соврать smile
Цитата

Я уже свой автолевел написал - могу под вас заточить если желаете  

Да было бы неплохо smile Заодно проверим расхождение теории с практикой... Идея изначально возникла после прочтения статьи в журнале, в ней писали, что ученые провели анализ мировых шедевров (уж не знаю сколько они шедевров анализировали), и обнаружилось , что шедевры не чужды smile как раз нормальному закону распределения smile

   Ну, если это не то - то нет смыста.
  
  А что за закон? Какие формулы? Можно поподробнее, заинтересовало  smile  


--------------------
PM   Вверх
rol
Дата 24.5.2006, 00:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 24.2.2005

Репутация: нет
Всего: нет



Нужно в учебнике глянуть.... хотя  яндекс рулит smile

вот несколько ссылок:

Про сам закон, с формулами:
_http://www.statsoft.ru/home/portal/glossary/GlossaryTwo/N/NormalDistribution.htm
_http://student.km.ru/ref_show_frame.asp?id=FA3DC4B40BCD4EED936C74AE307246EA
_http://www.nkzu.edu/NKZU/FIT/mat/ter_ver/gauss.htm

А здесь решается почти наша задача... даже с формулами, только нужно заменить значения случайной выборки данными джипега;)
_http://chemstat.com.ru/online/pirsen.html

Добавлено @ 00:42 
нет, не совсе, нужно заменить шкалу отсчета на значения спектра, если это правильно, не знаю как 
эти ученые (из журнальной статьи) строили эксперимент... 
PM MAIL   Вверх
rol
Дата 24.5.2006, 01:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 24.2.2005

Репутация: нет
Всего: нет



С другой стороны, если спектр представить длиной волны, то это тоже числа от 0 до плюс бесконечности, тоесть в нашем случае горб гистограммы должен смещаться вправо от нуля, начало его должно совпадать с длиной волны на оси Х самого темного цвета изображения, а конец с длиной волны самого светлого.... вопрос остался только в том, как правильно привязать цвет на изображении к длине волны, нужно найти таблицы соответствия длины волны спектру, это тоже формула была вроде.... 
Эхххх   школьный курс физики, не помню уже... а нам еще надо наши данные из вида #ffffff  преобразовать в десятиричные числа, соответствующее длине волны...

Хотя само число не интересно исходя из условий, важна разница между ними....  
PM MAIL   Вверх
rax
Дата 17.6.2006, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 4.6.2004
Где: Егорьевск

Репутация: нет
Всего: 1



Может немного не в тему, просто насчет функции ImageColorAt. Написал небольшой скриптец, который генерирует картинку из html кода. В объеме она увеличивается в 400 раз =) поэтому пользователям IE и дорогого трафика пробовать не стоит. По теории, если картинка совсем уж маленькая, можно написать редактор на js


Код

<html>
    <head>
    <style>
    .q {position:absolute;width:1px;height:1px}
    </style>
    </head>
<?php
$img="http://pirat.ru/i/eg/7.JPG";
$im = ImageCreateFromJpeg($img);    

list($width, $height, $type, $attr) = getimagesize($img);
print("123".$height);
for ($i=0;$i<$width;$i++){
    for ($j=0;$j<$height;$j++) {
$rgb = ImageColorAt($im, $i, $j);
print("<div class='q' style='top:".$j."; left:".$i."; background-color:".hexcolor($rgb)."'></div>");
    }
}

 function hexcolor($c) {
       $r = ($c >> 16) & 0xFF;
       $g = ($c >> 8) & 0xFF;
       $b = $c & 0xFF;
       return '#'.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);
   }

?>
 
PM MAIL WWW ICQ AOL YIM MSN   Вверх
szz
Дата 17.6.2006, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: нет
Всего: 33



Цитата

если спектр представить длиной волны, то это тоже числа от 0 до плюс бесконечности

  О чем вы? Длин волны это не яркость, а цвет. Помните радугу? Красный - самая длинная и до фиолетового - самая которкая.  
    И эо не от 0 до бесконечности а вполне определенный диапазон длин волны.    smile 
Вот этот спектр 


--------------------
PM   Вверх
rol
Дата 19.6.2006, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 24.2.2005

Репутация: нет
Всего: нет



szz:
Я же говорю, физику не помню smile
Хорошо, скажу проще smile
Нам не важно в чем отсчитывать координатную ось. Нам важно равномерное и последовательное перечисление всех цветов по оси Х, это должно быть  просто число. Главное - возможность сопоставить это число с определенным цветом.
Грубо:
      1               2                3            4            5          6              7  
красный оранжевый  желтый зеленый голубой синий фиолетовый

понятно, что есть и оттенки.... именно из-за них от 0 до  бесконечности....если все-таки интерпретировать каждый оттенок в число.
В принципе RGB вполне подходит, только нужно именно число, чтоб использовать его в формуле.
Вот и все.


rax, честно говоря, не понял как использовать твой скрипт в условиях данной задачи..  но он очень интересен, по сути это программный принтскрин на серверной стороне, так?
Если сделаешь на java script с сохранением картинки в указанное пользователем месте на его диске - куплю скрипт, картинка - примерно половина экрана, код - флеш, задача- сохранять результат примерки  в jpg моими посетителями (www.virtualdress.ru)  ;)  

Это сообщение отредактировал(а) rol - 19.6.2006, 01:26
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Графика | Следующая тема »


 




[ Время генерации скрипта: 0.0573 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.