convert white shade to red shade using recolor

Questions and postings pertaining to the usage of ImageMagick regardless of the interface. This includes the command-line utilities, as well as the C and C++ APIs. Usage questions are like "How do I use ImageMagick to create drop shadows?".
Post Reply
sujan.dasmahapatra
Posts: 44
Joined: 2012-02-18T21:42:01-07:00
Authentication code: 8675308

convert white shade to red shade using recolor

Post by sujan.dasmahapatra »

I want to convert the white shade of an image into red shade. I am trying using recolor but it's not coming. please help me

Code: Select all

convert shirt0.jpg  -recolor '1 0 0 0 0 0 1 1 1' shirtmod01.jpg
:?
User avatar
fmw42
Posts: 25562
Joined: 2007-07-02T17:14:51-07:00
Authentication code: 1152
Location: Sunnyvale, California, USA

Re: convert white shade to red shade using recolor

Post by fmw42 »

-recolor is now -color-matrix on more current versions of IM. -recolor has been deprecated and may or may not still work depending upon your version of IM. see http://www.imagemagick.org/script/comma ... lor-matrix

But I don't think that -recolor (-color-matrix) is really what you want, because it is really a channel processing function and not pixel selective. Also as white contains equal red, green and blue, you will really turn everything red.

This only works for grayscale images:

convert image -color-matrix "1 1 1 0 0 0 0 0 0 " result

or

convert image -recolor "1 1 1 0 0 0 0 0 0 " result


You probably need to use the following on images of color including white so that you only change the white.

convert image -fuzz XX% -fill red -opaque white result

see
http://www.imagemagick.org/Usage/color_basics/#replace
and in particular
http://www.imagemagick.org/Usage/color_basics/#fuzz


Or see the following about changing shirt colors.

This one uses -modulate:
http://www.imagemagick.org/Usage/photos/#chroma_key

The other way, might be to create a mask as in the above and then convert your image to grayscale use -level-colors black,red. Then use the mask to composite the result from -level-colors with the original image.

see
http://www.imagemagick.org/Usage/color_ ... vel-colors


Or see my huemap script, below, though that does not work for white (or shades of gray)
sujan.dasmahapatra
Posts: 44
Joined: 2012-02-18T21:42:01-07:00
Authentication code: 8675308

Re: convert white shade to red shade using recolor

Post by sujan.dasmahapatra »

i have tried using

convert image -fuzz XX% -fill red -opaque white result

This changing the color but exact shade is not coming. It looks like a color object, not looking like a shirt. i want the exact shade to come from the image but with a different color.
sujan.dasmahapatra
Posts: 44
Joined: 2012-02-18T21:42:01-07:00
Authentication code: 8675308

Re: convert white shade to red shade using recolor

Post by sujan.dasmahapatra »

its not working... my shirt is white shade i want the exact shirt in red or green, or blue or any other custom color i want later.

using this my color is changing to skyblue with the exact shade of white
convert shirt.jpg -recolor '0 0 1 0 0 1 1 1 1' shirtmod3.jpg

But i am not able to get the same shade in red or yellow or some other color. Can u tell me what are these six parameters of recolor
-recolor '0 0 1 0 0 1 1 1 1' whats this numbers tells ? which one is the source and which one is the target.??
sujan.dasmahapatra
Posts: 44
Joined: 2012-02-18T21:42:01-07:00
Authentication code: 8675308

Re: convert white shade to red shade using recolor

Post by sujan.dasmahapatra »

please tell me friend how can i use the functionality of recolor i am using imagick-6.6 i have the recolor feature in this version.

but i dont know how to make the color matrix. my source color is white, i want to convert all shades of white to red shade. how can i do that?
User avatar
fmw42
Posts: 25562
Joined: 2007-07-02T17:14:51-07:00
Authentication code: 1152
Location: Sunnyvale, California, USA

Re: convert white shade to red shade using recolor

Post by fmw42 »

Post a link to your input image and your blue output image. That way we can see exactly what you are trying to do.
But i am not able to get the same shade in red or yellow or some other color. Can u tell me what are these six parameters of recolor
-recolor '0 0 1 0 0 1 1 1 1' whats this numbers tells ? which one is the source and which one is the target.??
The rows are the source (input) and columns are the destination (output). If you want to learn how to use -recolor, see the interactive color matrix at http://www.adobetutorialz.com/articles/ ... lor-Matrix

convert -size 100x100 gradient: -recolor '0 0 1 0 0 1 1 1 1' result.png

or in row, column format as

convert -size 100x100 gradient: -recolor \
'0 0 1 \
0 0 1 \
1 1 1' \
result.png

But the above shades midtones only with blue for me. It does not change pure white or pure black.

For red, do

convert -size 100x100 gradient: -recolor \
'1 1 1 \
0 0 1 \
0 0 1' \
result.png

For yellow do

convert -size 100x100 gradient: -recolor \
'1 1 1 \
1 1 1 \
0 0 1' \
result.png



However, there are easier ways.

Try this to change all shades of white, except black to blue:

convert -size 100x100 gradient: +level-colors 'black,blue' result.png

For this, just choose any color or shade you want in place of blue. See http://www.imagemagick.org/script/color.php You can even specify colors as rgb(...) or hsl(...) or hex.



Alternately, if you want black converted to blue and pure white left alone, use

convert -size 100x100 gradient: +level-colors blue,white result.png


see http://www.imagemagick.org/Usage/color_ ... vel-colors


Or to get something that does the same as your -recolor, that only changes midtones, but easier, use -tint

convert -size 100x100 gradient: -fill blue -tint 40% result.png

You can change the fill color. You can change the tint percent to make it lighter or darker (that is how much light and dark to color)

see http://www.imagemagick.org/Usage/color_mods/#tinting
sujan.dasmahapatra
Posts: 44
Joined: 2012-02-18T21:42:01-07:00
Authentication code: 8675308

Re: convert white shade to red shade using recolor

Post by sujan.dasmahapatra »

Thanks a lot friend. I am experimenting your last suggestions. thanks a lot.
sujan.dasmahapatra
Posts: 44
Joined: 2012-02-18T21:42:01-07:00
Authentication code: 8675308

Re: convert white shade to red shade using recolor

Post by sujan.dasmahapatra »

my white color is not changing to red friend
I am doing like this

Code: Select all

<?php
if(isset($_POST['fabric2_Sleeve_Style1']))
{
exec("convert shirt.jpg -recolor '1 1 1 0 0 1 0 0 1' shirtmod1.jpg");
$imagepath = "shirtmod1.jpg";
echo "<img style='float:right;'  src='$imagepath' />";
}
?>
my color is still white . not chaning to red. whats going wrong i wrote exactly u said above.
sujan.dasmahapatra
Posts: 44
Joined: 2012-02-18T21:42:01-07:00
Authentication code: 8675308

Re: convert white shade to red shade using recolor

Post by sujan.dasmahapatra »

http://www.orkut.co.in/Main#AlbumZoom?g ... 0111104456 - this i s the shirt.jpg white shirt
http://www.orkut.co.in/Main#AlbumZoom?g ... 0111147518 - this is the skyblue shirt which i am able to make from white shirt using

Code: Select all

exec("convert shirt.jpg -recolor '0 0 1 0 0 1 1 1 1'  shirtmod3.jpg");
Please tell me how can I change the white shirt to red and yellow and many more other colors which I need.
User avatar
fmw42
Posts: 25562
Joined: 2007-07-02T17:14:51-07:00
Authentication code: 1152
Location: Sunnyvale, California, USA

Re: convert white shade to red shade using recolor

Post by fmw42 »

First we cannot get to your files without a login. Second -recolor is too hard to work with to get a specific color and I suggest you try the other techniques that have already been mentioned, such as +level-colors or -tint.

Best I can come up with is the following:

1)Pick a color name or rgb value--say skyblue
2) Convert the rgb values to fractions between 0 and 1 (i.e. divide the rgb from 0 to 255 by 255 to get 0 to 1) see http://www.imagemagick.org/contrib/color-converter.php r=135 -> 0.53, g=206 -> 0.81, b=235 -> 0.92
3) then use those values in the first two columns as follows


convert -size 100x100 gradient: -recolor \
"0.53 0.53 1 \
0.81 0.82 1 \
0.92 0.92 1" \
result_skyblue.png

but -tint and +level-colors are going to be much easier to use as they allow color names or rgb values or hex values
sujan.dasmahapatra
Posts: 44
Joined: 2012-02-18T21:42:01-07:00
Authentication code: 8675308

Re: convert white shade to red shade using recolor

Post by sujan.dasmahapatra »

what does it mean by

convert -size 100x100 gradient: -recolor \
"0.53 0.53 1 \
0.81 0.82 1 \
0.92 0.92 1" \
result_skyblue.png

it should be convert source.png right. you have not mentioned source image.

I think it is
convert source.png -recolor \
"0.53 0.53 1 \
0.81 0.82 1 \
0.92 0.92 1" \
result_skyblue.png
User avatar
fmw42
Posts: 25562
Joined: 2007-07-02T17:14:51-07:00
Authentication code: 1152
Location: Sunnyvale, California, USA

Re: convert white shade to red shade using recolor

Post by fmw42 »

sujan.dasmahapatra wrote:what does it mean by

convert -size 100x100 gradient: -recolor \
"0.53 0.53 1 \
0.81 0.82 1 \
0.92 0.92 1" \
result_skyblue.png

it should be convert source.png right. you have not mentioned source image.

I think it is
convert source.png -recolor \
"0.53 0.53 1 \
0.81 0.82 1 \
0.92 0.92 1" \
result_skyblue.png

Yes, I used a gradient image just for testing to see how it shaded the image with the color, because I could not download your images. You can replace it as follows:

convert source.png -recolor \
"0.53 0.53 1 \
0.81 0.82 1 \
0.92 0.92 1" \
source_skyblue.png

But it would really help to understand your image to see if there is a better way to achieve what you desire.
sujan.dasmahapatra
Posts: 44
Joined: 2012-02-18T21:42:01-07:00
Authentication code: 8675308

Re: convert white shade to red shade using recolor

Post by sujan.dasmahapatra »

now my color shades are coming properly friend. I am following your suggestion for +level-color its coming perfect like this

exec("convert shirt.jpg +level-colors black,blue shirtmod3.jpg");

Thanks a lot.
User avatar
fmw42
Posts: 25562
Joined: 2007-07-02T17:14:51-07:00
Authentication code: 1152
Location: Sunnyvale, California, USA

Re: convert white shade to red shade using recolor

Post by fmw42 »

sujan.dasmahapatra wrote:now my color shades are coming properly friend. I am following your suggestion for +level-color its coming perfect like this

exec("convert shirt.jpg +level-colors black,blue shirtmod3.jpg");

Thanks a lot.
Yes, that is the syntax I had in mind to shade grays to white, but have black remain black. That is what we typically do for colorizing grayscale images as per Anthony's pages.
Post Reply