I spent a bit of time this weekend building an RGB color cube for
ColorPal, using Three.js. Drag and drop any image, and you’ll see a
cube with all the pixels of your image mapped into 3D space.
Launch live demo! and view the
code.
Your web browser must support WebGL, which at t…
Hi pals.
This is a speedy post about a speedy update I made today to
ColorPal, an HTML5 tool I wrote that automatically
generates color palettes from a photograph.
Previously, ColorPal provided hex codes for each color extracted from the
image. Eight individual <input>s at …
2018-08-29 update: This is an old post about how I created a thin indexed color API in front of HTML5 canvas. It wasn’t very usable or powerful, but it was a fun learning experience. Instead of reading the post, I recommend checking out Mark Ferrari’s breathtaking color cycling a…
What have we here? It’s a limited demonstration of indexed color within the HTML5 canvas element.
.color_palette {
list-style: none;
}
.panel-body {
background-color: #1f1f1f;
}
.palette-panel-body a.btn {
margin: 6px;
}
.color_palette li {
float: left;
disp…
In my last post on the subject, I introduced
ColorPal, my HTML5 color palette generation tool. It didn’t perform well with
certain types of images, so I fixed it. :)
Color palettes will now match the image even better. Especially for images
with infrequent but important colors.…
Introducing ColorPal!
I’ve been toying with color palette generation for years. My photography website has always had some form of dynamic palette, so the theme of each page matches the photo. You can see the current iteration here:
I owe the idea of photo-matching website pale…
This is the last demo I made using JSImage. I created it some time around 2009-2010. At the time, I had checked out an imaging book from my university’s library at least ten times. Most of the exercises in that book I implemented in Python using PIL, but point operations were si…
For an HCI class project in Fall 2009, I pulled together some of my previous demos to make this integrated tool. It was just a prototype, and I haven’t taken the time to get the code set up and working on this blog. If anyone is interested, I can dig up the code and send it along…
This is yet another demo from around 2009. It’s simple enough. Click a
button, draw an unbinned RGB histogram of the source image.
It’s powered by an early version of an old JS toolkit I wrote called JSImage.
The latest version is available at my JSImage github
repo. Don’t be foo…
This is another demo from 2009-ish. When I started experimenting with canvas, I felt uncomfortable with the 1-dimensionality of CanvasPixelArray. I wrote this script to convert it into a more logical format: X by Y by RGBA. Let me rephrase that. By “more logical”, I mean “more lo…
This is a demo from late 2009. It’s an extension of the single-pixel eyedropper I wrote previously.
It’s powered by an early version of an old JS toolkit I wrote called JSImage. The latest version is available at my JSImage github repo. Don’t be fooled by the 2011 commits, those…
JSImage was a basic, buggy, just-for-fun image processing library that I wrote
in 2008/2009 when I first started seriously studying JavaScript.
A stumbled across a book in my university library, and started
implementing the algorithms on the newly available HTML5 canvas element.
…
The unfortunately-named median-cut.js is the library that powers
ColorPal’s palette generation.
I say it’s unfortunately named because it doesn’t implement a pure median-cut
algorithm. It’s identical, except that instead of cutting boxes at their
median, they are instead cut at …