Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Изменения цвета картинки (https://javascript.ru/forum/misc/13191-izmeneniya-cveta-kartinki.html)

Snipe 22.11.2010 15:04

Цитата:

Сообщение от stieve (Сообщение 80164)
Я думал на сайте javascript.ru сидят люди, которые знают этот самы явасркипт.... ан нет.... какой смысл в форуме...?

Так вам на сервер надо картинку отдавать и там уже с ней что-то делать.
А не с помощью JS.
Это будет самый простой путь.

stieve 23.11.2010 06:23

monolithed,
вот смотри. Есть первый вариант как это делать...
всё впринципе просто, если использовать js и php backend`ом. Иначе говоря на Ajax. То есть цвета на картинке меняет рнр скрипт, получая в качестве параметра от JS код цвета. Это насколько я понимаю подходит и для растрового изображения и для векторного (хотя я не осбо понимаю в чём там разница, ведь заменять цветные пиксели мне кажется проще...)
а есть ли второй вариант, без применения Ajax`а? Если допустим изображение растровое... как мне при загрузке вычислять кол-во цветов? и как их менять? canvas насколько я понял, слишком громоздок и кросбраузерностью там не пахнет.... Намекни в какие степи JS лезть пожалуйста, или хотя бы скажи мне принцип пошагово.

monolithed 23.11.2010 08:13

Еще раз на пальцах объясняю, чтобы изменить цвета в растровом изображении, нужно сначала описать фигуру, т.е. воспользоваться к примеру html элементом area для получения координат (можно это сделать с помощью фотошопа, затеем сохранить как html). Ну а потом уже делать заливку с помощью JS

stieve 23.11.2010 08:55

monolithed, понял. Вопрос другой, изначальная картинка мне не ивестна. Я не знаю что там на ней нарисовано, я только знаю, что на ней белый фон и какое-то изображение в однотонном цвете, то есть мне этот однотонный цвет и надо менять... я же программно могу вычислить координаты этой фигуры, или, например, нескольких фигур на изображении? У меня видишь нет ориентирования по координатам изначально, есть только данные о том, что кроме белого цвета, есть какой-то ещё... какой неизвестно, но его надо менять

monolithed 23.11.2010 09:43

В этом случае поможет только инвертирование цвета, для этого нужно выбрать цвет, найти область замещения (по цветовой палитре) и выполнить замещение цвет. Для этого в PHP есть библиотека GD.

что-то типа такого (урезано в 10 раз)
<?php 
header("Content-type: image/png");
$image = imageCreateFromPng("image.png");
imagecolorresolve($image, 255, 255, 0);//ищем запрошенный цвет
$color = imageColorAllocate($image, 255, 255, 0);
imagepng ($color);
?>

stieve 23.11.2010 11:31

да php то я отлично знаю, на нём я знаю как делать... а с флэшем ты помочь не сможешь, если допустим всё сделать векторным? :-?

monolithed 23.11.2010 11:55

Ну на php инвертирование проще делать, хотя в чем проблема сделать так:

Цитата:

Сообщение от monolithed
сначала описать фигуру, т.е. воспользоваться к примеру html элементом area для получения координат (можно это сделать с помощью фотошопа, затем сохранить как html). Ну а потом уже менять заливку с помощью JS

Цитата:

Сообщение от stieve
а с флэшем ты помочь не сможешь, если допустим всё сделать векторным?

Я не преподаю курсы по флешу

dmitriymar 23.11.2010 12:49

хочешь найти найти подмешку в граф изображении? скриптом не сделаешь-не определяет он цвет точки. тебе нужен с++ или делфи или бейсик или паскаль или асемблер или..... вобщем практически всё кроме скрипта

stieve 23.11.2010 13:42

dmitriymar, или всё таки долбаный флэш? :(

dmitriymar 23.11.2010 13:53

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


Часовой пояс GMT +3, время: 14:53.