We've had a social photo app in the works for some time that we will soon be doing a limited beta launch of: pando. Pando is a user-to-user ephemeral photo sharing app, but that function is not what I want your help with. Pando also can anonymously share to the web at pandopix.com. Please download the app (iOS, Windows Mobile, or Android) by clicking on the appropriate link icon at the top right of the site:
The "doorknop" (I meant to do that! Yeah that's the ticket) was uploaded from the app using the steps here:
Once you do that with a photo, try adding a hashtag (currently limited to our set listed in "links" at the top of the site) anywhere in the message you add. For example if you say "I have crazy #cats" it will go to pandopix.com/cats
Your mission, should you choose to accept it, is to help me fill all the subdirectories (we call them "subpandos" inspired by reddit terminology) with nicer pictures than I would make.
And for extra credit, add "shirley" as a friend and send me a private message. Use the stickers for that for my amusement :)
Monday, August 25, 2014
Sunday, August 24, 2014
Color bleeding looks like a bug!
This red effect is color bleeding in my living room this morning, and it is about what it really looks like (no photoshop or camera curve amplification). I looked through the window in the image and no red out there!
The source for the image was obvious once I shadowed it. It is all a red car across the screet that has caught the sun before most of the other objects. It is mostly burned out here which is because it is bright. I should have HDR'd it! Next time. On the right a figure blocking that car (I am standing by the wall where the red pattern appears, taking this picture) completely eliminated the effect. Now THAT is a secondary light source like we idealize in discussions...
Also for those that enjoy these, Morgan McGuire collects images that look like bugs. My favorite is the obvious shadow aliasing.
The source for the image was obvious once I shadowed it. It is all a red car across the screet that has caught the sun before most of the other objects. It is mostly burned out here which is because it is bright. I should have HDR'd it! Next time. On the right a figure blocking that car (I am standing by the wall where the red pattern appears, taking this picture) completely eliminated the effect. Now THAT is a secondary light source like we idealize in discussions...
Also for those that enjoy these, Morgan McGuire collects images that look like bugs. My favorite is the obvious shadow aliasing.
Saturday, August 23, 2014
Purity in RGB
We've just updated our Pic! app (update it if you have it!) to include a "turn it to 11" color mode. This is sometimes called increasing color "purity" and more commonly "chroma". There are lots of terms for this basic concept, and in graphics it is usually called "saturation" in the HSV/HSL models. "Saturation" is used differently in different fields so I avoid it and use "purity". Most of Pic! uses our own color model, but this seemed best to do in good old RGB.
Note that I am betting purity in RGB is discussed in 50 different places already. But I couldn't find it anywhere and in case it simply is one of those topic most people think is so simple they never bother to write it down I will here. I didn't find it that easy!
Reducing purity is easier than increasing it as I will discuss. First compute the grey (luminance) level associated with the color c.
v = k_r*R + k_g*G + k_b*B
Where the color c is (R,G,B). The constants are from whatever your favorite luminance formula is, and in my experience it doesn't matter much as long as you are consistent. It wouldn't surprise me if (1/3, 1/3, 1/3) worked best in practice for most graphics applications and has nice computational advantages. Now set up an RGB grey v = (v,v,v). Our assumption that all colors are a combination of a "pure" color b and a grey v:
c = p*b + (1-p)*v
In RGB a "pure" color is one that is 0 in one of the components. So we can keep subtracting off grey from the smallest component.
min = p*0 + (1-p)*v
so,
p = 1-min/v
Therefore
b = (c - (1-p)*v)/p
That may have components above 1, so pmax should be computed for better clamping:
1.0 = p_max*b_max + (1-p_max)*v
p_max(bmax-v) = 1-v
p_max = (1-v)/(bmax-v);
In glsl or other shading languages, min can be computed without figuring out which component:
float m = min(min(c.r, c.g), c.b);
Here's a diagram of what is going on. When the color points toward one of the upper faces b will be outside the cibe (see clamping above).
A common use case of turning up the purity to 11 is food pictures. I may have overdone it here, but you get the point:
Note that I am betting purity in RGB is discussed in 50 different places already. But I couldn't find it anywhere and in case it simply is one of those topic most people think is so simple they never bother to write it down I will here. I didn't find it that easy!
Reducing purity is easier than increasing it as I will discuss. First compute the grey (luminance) level associated with the color c.
v = k_r*R + k_g*G + k_b*B
Where the color c is (R,G,B). The constants are from whatever your favorite luminance formula is, and in my experience it doesn't matter much as long as you are consistent. It wouldn't surprise me if (1/3, 1/3, 1/3) worked best in practice for most graphics applications and has nice computational advantages. Now set up an RGB grey v = (v,v,v). Our assumption that all colors are a combination of a "pure" color b and a grey v:
c = p*b + (1-p)*v
In RGB a "pure" color is one that is 0 in one of the components. So we can keep subtracting off grey from the smallest component.
min = p*0 + (1-p)*v
so,
p = 1-min/v
Therefore
b = (c - (1-p)*v)/p
That may have components above 1, so pmax should be computed for better clamping:
1.0 = p_max*b_max + (1-p_max)*v
p_max(bmax-v) = 1-v
p_max = (1-v)/(bmax-v);
In glsl or other shading languages, min can be computed without figuring out which component:
float m = min(min(c.r, c.g), c.b);
Here's a diagram of what is going on. When the color points toward one of the upper faces b will be outside the cibe (see clamping above).
A common use case of turning up the purity to 11 is food pictures. I may have overdone it here, but you get the point:
Wednesday, August 20, 2014
Blue-greens
In selecting the logo for our company we went with a blue-green that we like and because I have often read it is a popular color among all cultures and genders, and it struck me that blue-greens are not something people have very widely-known names for.
On the blue side, artists have long used "cerulean blue" for their skies. This has more green in it than I once thought, as "blue" skies do in general. For example the RGB of the sky is the triple shown where the color leans much more toward green than red.
The color cerulean according to wikipedia is ((0, 123, 167) in sRGB. The name was given more exposure in The Devil Wears Prada.
If we move more toward green the English words that come to my mind are "turquoise", "teal" and "cyan". I have usually used these terms interchangeably, but if we are to believe wikipedia they are quite different. Teal and cyan are perfect blue-green combos (half and half) but teal is darker. Turquoise leans toward green. These are:
Note the cyan starts to take on the look the sky often has near the horizon, showing just how much the sky sometimes leans more green than purple.
I checked the great xkcd color survey and I missed the color "aqua" which really doesn't mean much to me (wikipedia says it is a synonym for cyan) but does to the females in his survey:
For Westerners, I believe a variety of surveys have shown blue and green are very popular colors, with this being a recent one, and here is a summary of their results:
So for Westerners, teal is probably an appealing color, especially given how green many blues lean.
Some companies say blue is the safest color globally and I'm looking for more data there. Pointers appreciated! For car color choices blue is popular everywhere, but achromatic is king everywhere. Partially Apple's influence?
In the end, my impression is everybody likes blue, but especially when it leans green. Let's close with this picture from fairphotos at flickr where the water is almost as green as it is blue:
On the blue side, artists have long used "cerulean blue" for their skies. This has more green in it than I once thought, as "blue" skies do in general. For example the RGB of the sky is the triple shown where the color leans much more toward green than red.
The color cerulean according to wikipedia is ((0, 123, 167) in sRGB. The name was given more exposure in The Devil Wears Prada.
If we move more toward green the English words that come to my mind are "turquoise", "teal" and "cyan". I have usually used these terms interchangeably, but if we are to believe wikipedia they are quite different. Teal and cyan are perfect blue-green combos (half and half) but teal is darker. Turquoise leans toward green. These are:
I checked the great xkcd color survey and I missed the color "aqua" which really doesn't mean much to me (wikipedia says it is a synonym for cyan) but does to the females in his survey:
For Westerners, I believe a variety of surveys have shown blue and green are very popular colors, with this being a recent one, and here is a summary of their results:
So for Westerners, teal is probably an appealing color, especially given how green many blues lean.
Some companies say blue is the safest color globally and I'm looking for more data there. Pointers appreciated! For car color choices blue is popular everywhere, but achromatic is king everywhere. Partially Apple's influence?
In the end, my impression is everybody likes blue, but especially when it leans green. Let's close with this picture from fairphotos at flickr where the water is almost as green as it is blue:
Monday, August 18, 2014
The "Zorn palette"
Anders Zorn was a great Swedish painter that is well known among artists for his aggressively limited palette. I learned of Zorn and his palette from Juan Ramirez, a fine young painter who often uses limited palettes (I have two of his paintings on my wall!), and it has certainly influenced my software. He didn't always do this, but he often used just white, black, red, and yellow (or sienna). If you look at the paintings in the web page above you will note a distinct lack of blue and green. In my last blog post that is essentially what I use. While this can be distracting for things like skies, it isn't always; note the blue jeans become grey jeans. It preserves skin tones, which is why it is so common for portraitists. You can see some secondary evidence Zorn often used just those colors in this self-portrait from wikipedia:
Friday, August 15, 2014
My favorite filter in Pic!
Here is the filter that kills greens and blues but leaves flesh tones alone.
On the left is the original and right is Pic! output. It's obvious the sky goes from blue to grey but less obvious is the trees on the right are brown (in RGB G is never greater than R). The trees may still look green but I think that is due to context and contrast. However it may just be that green is a powerful color: my read of the xkcd data (read that if you haven't it's fantastic!) is that it would be "olive" for most people.
On the left is the original and right is Pic! output. It's obvious the sky goes from blue to grey but less obvious is the trees on the right are brown (in RGB G is never greater than R). The trees may still look green but I think that is due to context and contrast. However it may just be that green is a powerful color: my read of the xkcd data (read that if you haven't it's fantastic!) is that it would be "olive" for most people.
Wednesday, August 13, 2014
Our new app Pic! is live on iOS app store
We have a new photo editing app on the app store. You can get it for 99 cents here. Since mostly graphics nerds read this blog, I will buy you a beer next time I see you if you buy it and try it. That is a 2X-10X return on investment (depending on where you live and the beer you like)! Please like the Pic! page on facebook as well, and post your photos there.
The basic idea of the app is that you choose between four images you can see all at once.
This is the first screen and you are essentially choosing a category (normal, bi-color, posterized, or technicolor). The next two screens are fine scale adjustments. My favorite filter is one I don't think you can get elsewhere where there is no blue or green (just browns, yellows, reds, and greys) but it still (for most input) looks like a color image rather than a sepia-tone. I leave finding it in the app as an exercise for you.
This is somewhat of a beta app. Come iOS8 we have a Swift implementation of an app extension (a new plugin-like feature of iOS) that will come out next month. I think this app is a poster child (pun intended) for app extensions: it does one simple thing well.
Obligatory graphics nerd content: to get these filters to work I needed to use a boutique color space that as far as I know has not been used, or is even known, in graphics. It is not new to humanity and I will write it up when it is no longer secret sauce for us: it's will be my go-to color space for lots of things in the future.
The basic idea of the app is that you choose between four images you can see all at once.
This is the first screen and you are essentially choosing a category (normal, bi-color, posterized, or technicolor). The next two screens are fine scale adjustments. My favorite filter is one I don't think you can get elsewhere where there is no blue or green (just browns, yellows, reds, and greys) but it still (for most input) looks like a color image rather than a sepia-tone. I leave finding it in the app as an exercise for you.
This is somewhat of a beta app. Come iOS8 we have a Swift implementation of an app extension (a new plugin-like feature of iOS) that will come out next month. I think this app is a poster child (pun intended) for app extensions: it does one simple thing well.
Obligatory graphics nerd content: to get these filters to work I needed to use a boutique color space that as far as I know has not been used, or is even known, in graphics. It is not new to humanity and I will write it up when it is no longer secret sauce for us: it's will be my go-to color space for lots of things in the future.
Subscribe to:
Posts (Atom)