смысть водяной знак с фото

ДП
На сайте с 23.11.2009
Offline
203
#41

Чего вы пристали, человек же вроде под конкретный вотермарк решение ищет.

И он прекрасно представляет себе ограничения того способа, которым хочет решить проблему.

Вы чего ему доказать-то пытаетесь?

anton831
На сайте с 25.05.2011
Offline
71
#42
Дикий пионер:
Чего вы пристали, человек же вроде под конкретный вотермарк решение ищет.
И он прекрасно представляет себе ограничения того способа, которым хочет решить проблему.
Вы чего ему доказать-то пытаетесь?

Дак нет решения под конкретный вотермарк!

Максимум это под конкретное фото можно найти, и то очень постараться придеться.

PS: Вы еще не учитываете разрешение фотографий, оно ведь тоже разное у всех.

G
На сайте с 12.04.2008
Offline
101
#43

А вообще тема интересная. Идею ТС понял, и по сути как бы и логика есть в этом, но более чем уверен что на автопилоте и универсально это не сделать. Задумка очень интересна, но также работаю с фотошопом очень часто - думаю не разрешима.

Сорри за оффтоп, просто читал до конца - затронуло и не смог удержаться.

Продажа сайтов (/ru/forum/866932) под Amazon и AdSense
InoHacker
На сайте с 18.10.2009
Offline
75
#44

Просто, как мысль к рассуждению ...

А Вы не пробовали посмотреть, как происходит НАЛОЖЕНИЕ ватермарка для различных движков? Вот, например, функция для DLE:


function insert_watermark($min_image) {
global $config;
$margin = 7;

$this->watermark_image_light = ROOT_DIR . '/templates/' . $config['skin'] . '/dleimages/watermark_light.png';
$this->watermark_image_dark = ROOT_DIR . '/templates/' . $config['skin'] . '/dleimages/watermark_dark.png';

$image_width = imagesx( $this->img['src'] );
$image_height = imagesy( $this->img['src'] );

list ( $watermark_width, $watermark_height ) = getimagesize( $this->watermark_image_light );

$watermark_x = $image_width - $margin - $watermark_width;
$watermark_y = $image_height - $margin - $watermark_height;

$watermark_x2 = $watermark_x + $watermark_width;
$watermark_y2 = $watermark_y + $watermark_height;

if( $watermark_x < 0 or $watermark_y < 0 or $watermark_x2 > $image_width or $watermark_y2 > $image_height or $image_width < $min_image or $image_height < $min_image ) {
return;
}

$test = imagecreatetruecolor( 1, 1 );
imagecopyresampled( $test, $this->img['src'], 0, 0, $watermark_x, $watermark_y, 1, 1, $watermark_width, $watermark_height );
$rgb = imagecolorat( $test, 0, 0 );

$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;

$max = min( $r, $g, $b );
$min = max( $r, $g, $b );
$lightness = ( double ) (($max + $min) / 510.0);
imagedestroy( $test );

$watermark_image = ($lightness < 0.5) ? $this->watermark_image_light : $this->watermark_image_dark;

$watermark = imagecreatefrompng( $watermark_image );

imagealphablending( $this->img['src'], TRUE );
imagealphablending( $watermark, TRUE );

imagecopy( $this->img['src'], $watermark, $watermark_x, $watermark_y, 0, 0, $watermark_width, $watermark_height );

imagedestroy( $watermark );

}

Быть может проанализировав N-ое кол-во движков, Вы увидите, что существует какой то общий "механизм" наложения. В этом случае можно будет написать обратный алгоритм.

Еще раз повторюсь, можете рассматривать как фантазию 🤪

Магазин аккаунтов с балансом Litres,DNS,Ozon,Rotapost и еще 50+ других сервисов тут - vk.cc/7QK0Sk
N
На сайте с 06.05.2007
Offline
419
#45
anton831:
И каким интерестно образом, вышеуказанные действия привели вас к тому что исходный цвет водяного знака, был ffffff ?

Да потому что почти всегда ватермарки делают белыми.

Вопрос не в том какой именно был ватермарк. Вы всегда можете нарисовать его самостоятельно.

Но даже обладая исходником такого ватермарка, обратить смешение цветов назад не получится.

netwind добавил 22.11.2011 в 23:03

InoHacker:
Быть может проанализировав N-ое кол-во движков, Вы увидите, что существует какой то общий "механизм" наложения. В этом случае можно будет написать обратный алгоритм.

да ё маё.

сделай слой в фотошопе, нарисуй белым по прозрачному буквы, совмести с 50% прозрачностью - вот тебе и ватермарк.

Кнопка вызова админа ()
InoHacker
На сайте с 18.10.2009
Offline
75
#46
netwind:

да ё маё.
сделай слой в фотошопе, нарисуй белым по прозрачному буквы, совмести с 50% прозрачностью - вот тебе и ватермарк.

Я написал как человек, который в качестве хобби программит на ПХП и не разбирается в графике вообще. Так что, не очень понятно, как мне поможет Ваш совет =) Одним словом, если бы передо мной стояла такая задача, я бы пошел именно по этому пути =)

anton831
На сайте с 25.05.2011
Offline
71
#47
netwind:
Да потому что почти всегда ватермарки делают белыми.
Вопрос не в том какой именно был ватермарк. Вы всегда можете нарисовать его самостоятельно.
Но даже обладая исходником такого ватермарка, обратить смешение цветов назад не получится.

Я с этим и не спорю - просто пытаюсь донести до ТС, максимально простым языком какие проблемы встанут на пути к решению этой задачи.

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

Надо найти точный цвет ветмарка и % прозрачности, чтоб хотя бы попытаться что то сделать - что тоже нерешаемая проблема.

Ну и то что вы только что написали - напоследок.:)

D
На сайте с 14.01.2007
Offline
153
#48

anton831, какой же вы упрямый гуманитарий:)

полностью согласен с Диким Пионером: задача решаема до определённой границы, а именно яркости ватермарка. но с "чёрного" он и так удалится, а на "белом" его менее видно. так как у ТС задача не на 100% очистить, то результат вполне может устроить

N
На сайте с 06.05.2007
Offline
419
#49
anton831:
Надо найти точный цвет ветмарка и % прозрачности, чтоб хотя бы попытаться что то сделать - что тоже нерешаемая проблема.

он уже это сделал загрузив черное изображение

kvins
На сайте с 23.08.2011
Offline
95
#50

Вот реально еще рано о таком думать, вот когда появятся программы которые умеют сохранять историю картинки как сейчас фотошоп с форматом psd,

(Кто владее фотошоп понимает что можно сделать с форматом psd)

то можно было бы придумать алгоритм который бы вырезал историю где накладывался водяной знак и удалить ее.

Думаю это надо прогу создавать и заставить всех людей перейти с фотошопа на твою прогу =)

kvins добавил 23.11.2011 в 11:05

Да еще надо учитывать вес картинки с такой историей

Магазин уникальных статей. (http://linkum.ru/to/13254/)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий