This is kind of a generic question, hopefully it is clear enough to understand. I am more concerned with the end result rather than the procedure, I am currently using Photoshop CS4.
Anyway, I want to make a grid, not necessarily with square grid blocks, then attach an image to a new layer underneath the grid. Then I want something that will go grid block by grid block, look for the predominant color of the attachment image within that grid block, and fill that entire grid block with that color. The images I am looking to attach are cartoon style (i.e. logos), and there are not complex color schemes to work with. The Pixelize effect is similar, except that it gives a blend of the colors which may not be in the grid space to begin with. i.e., if only black and white is used in an image, it might spit out a gray color shade rather than black or white.
I hope that makes sense, and I don't know if it is possible or not. I am essentially trying to create a pattern from source images.
This is very easy if what you want is the average color of the block. All you have to do is use Image > Image size and for pixel dimensions for Width and Height type the numbers for the grid. Then if you want to make that tiny image back to the original size, use the Image size again and type the original number of pixels per side and make sure that the resampling method on the popup menu at the bottom of the Image Size window is set to Nearest Neighbor.
edit: Did not see your last post with the image when I wrote my message. May not work for that but let me check.
As always, several ways to achieve it.
Filter Galery > Texture > Patchwork or Stained Glass
or create a grid on a new layer.
Turn on the Grid, and make a square selection in line with the grid
Stroke the selection
Select it again and go Edit > Define Pattern
Fill an empty layre with your new pattern
Lots of ways to make the pattern interact with the layer beneath, but I would use:
Bevel Emboss setting Direction to Down. You'll need pretty small values.
Adjust the layer 'Fill' down to zero or near zero. This will remove the grid, but leave the layer style.
The above will produce what is essentially the same as the Patchwork filter, but you have the flexibility to use any pattern you can think of and make.
I really don't think there is going to be any automated plug-in, filter, etc to get the exact (pixel perfect) effect you want (simply because I'm not sure there is that much control over how the anti-aliasing will be handled). When you have a single pixel that's not filled 100% opaque (anti-aliasing), I can't see how any plug-in could accurately determine whether that pixel should be filled with the neighboring color or left empty. Now, I'm simply guessing based off what I know about anti-aliasing, but if you want pixel perfect pixels, you may be able to use a plug-in, but then you may have to do some manual cleanup.
Looking at your example, (which came as I was writing my last post) try making your shape, and Free Transform it to a tiny size. Then Free transform it again to bring it back up to a size which causes the Zoom grid to show. Now grab the screen to clipboard (Alt prt scrn)
Ctrl n to create a new image the size of the clipboard
Ctrl v to paste the screen dump to new image.
You might need to use Levels to harden up any antialiasing.
Well, I gave it a quick try with my suggestion but it is not going to work because if you look at that shape in your original image and your final goal image, although similar, they are actually different shapes not exactly the interpolated result of the original, and this is more extreme with your other shapes. So as Shan suggested, I also don't think that you will find any of the methods to achieve what's in your mind because all of the methods will work on some sort of interpolation from the original.
If all images are with similar simplicity you can recreate the shapes on a very small canvas with a few pixels at a very increased zoom so that tools like the pencil will put a pixel on each square - which is how pixel art is created. At the end you can increase the size with the Nearest Neighbor interpolation.
Thanks for all the input everybody. I kind of figured there wasn't a perfect method to achieve the results. I was just hoping there was a configuration hidden somewhere that did an "absolute" method rather than "average" method for computing the new pixel color. At the very least, these will give me something to start with.
It is not about the color or the antialiasing which are easy things to solve, but the positioning of the pixels. Take for example the star like shape from your original image - the tips of the thin legs do not occupy more than 50% of the pixel you gave them in your final image. So if you disable the antialiasing all interpolation methods will not give the color of the star for the the legs on that pixel but will put white there.
It is not that difficult to make those shapes by hand. Increase the zoom of your image to the maximum of 3200% and make sure the Pixel Grid is checked from View > Show. Then take the Pencil tool (it is under the Brush tool in the toolbox) make its size 1 pixel and paint with the desired color.
There you go.
That looks nothing like what the OP wanted. It would take more time to clean that up than to draw the shapes from scratch using a pencil. In some cases, you could even draw one half of the shape, then duplicate it, flip it, etc.
The only way the OP is going to get the exact pixel by pixel result he wants is to zoom in as much as possible, use a pencil, and draw the shapes. You may get away with using the selection tool for perfectly straight or diagonal lines. I've never seen or heard of any "shortcut" that would be able to properly interpolate a shape into a pixel by pixel "patchwork" replica.
Thanks everybody, I finally got the results I was looking for. I was hoping for an automated method, but I see there was no way without some amount of touch up work. I went with emil emil's method and just resized the image to to the size of the grid I was working with. At this point, I had to go pixel by pixel and use a custom color swatch to draw in the true color I wanted in each pixel. There was quite a bit of work involved, but at least with the resizing it colored each pixel to the approximate shape I was looking for. I just had to make a judgment pixel by pixel if a color was closer to one color in my swatch or another and pencil it in accordingly.
A little background on my question. I do a little personal beadwork as a hobby like this:
I had a friend ask if I could make one with a pattern of his favorite sports team logo. So as a birthday present I decided to make one, but creating a pattern from scratch with a complicated logo was difficult. So I wanted to take a picture of the logo and simplify it into a pattern shape. I am happy with the results, it isn't perfect, but it looks generally the same. See for yourself.
You may find it helpful while creating your pixel art to open another or more windows of the same image from Windows > Arrange menu. Then put the windows side by side, change the zoom on the different windows so, you can see your work at different zoom levels while creating it. This will help you to avoid getting lost in the details by keeping an eye on the overall picture when vewing it at a smaller size while creating the detail on larger size.
Aslo, most likely you know this already but since you said swatachs, I'll mention that you can hold the Alt key while using the pencil tool to sample the color from the other parts of the image.