Starting page Versão em português desta página Quindigo Curriculum Vitae Graduate course on Games Pixel Pocketknife QuindiGUI Todopano Drawings - Truco! Drawings - Projeto Terrinha Drawings - LíGia Drawings - Habilidades Auditivas Drawings - Acerte Sempre Drawings - Caderno Ilustrado de Verbos Drawings - Miscellany

Pixel Pocketknife

Pixel Pocketknife is the graphics editor I developed in my free hours to make my life easier and without any commitment other than that with my personal satisfaction. This application gave me the ultimate motivation to create this site. I dedicated time to it essentially in the period from August 2002 through February 2006. In July and August 2008, I wrote a JPEG decoder and inserted it in PixPoc.

Small and easy to use, Pixel Pocketknife has interesting features that initially aimed at solving frequent problems I had when manipulating images. It is versatile: it can be used to draw pixel by pixel small images (like those suitable for tool buttons and application icons) as well as to apply effects to complex images such as photos. I use it often to assemble wallpapers for the mobile phone and avatars. All images of this site were assembled and/or treated with Pixel Pocketknife assistance.

Pixel Pocketknife is available for free download and use.


Pixel Pocketknife (PixPoc) running on Windows XP screenshot

Application key features

  • Small, versatile and easy to use;
  • Loads and saves images in bitmap, icon and cursor formats, thus offering transparent and inverted colors for edition. It also loads some variations of JPEG format, but does not save in this format;
  • Allows many images to be open at the same time;
  • Undo and Redo functions;
  • Friendly functions for traces and geometric shapes drawing;
  • Many simple and useful transform operations (rotation, inversion, scrolling, colors inversion etc);
  • Function for painting a region that is delimited by a specific color;
  • Function for converting image into specific color scale;
  • Image enlargement and reduction with quality;
  • Function for clipping pasting that combines configurable image merge with clipping enlargement and reduction with quality;
  • Function for producing and pasting clipping with text image;
  • Tool that monitors the Windows Clipboard in order to capture and save the images that are copied into it. Just supply a pattern for the file names, indicating where the digits of the sequencial numbering must appear, and Pixel Pocketknife will speed up enormously the attainment of screenshots (with the "Print Screen" key) in sequence;
  • Function to edit image color palette (applies to 2, 16 or 256 colors bitmaps);
  • Masks feature to protect specific image areas during edition. The application allows choosing an auxiliary image (that may be the same image being edited) that works as a masks map. Each color of that masks map indicates a region that may be selected as mask.
    This feature is powerful and there are several ways of taking advantage of it, but these are not trivial to explain in few text lines.

Hey, but this editor is undercooked!

Ah, it probably is. To invest in its interface and prepare it for all kind of users never was top priority. My main interest has always been to add useful features to the application, using it as test field for my ideas. When I made Pixel Pocketknife available for download for the first time, it was quite raw and had (more) bugs.

There are two facts that I must make clear:

1) The application was developed with only a text editor and a C++ compiler invoked via command line. This means that I programmed every detail of the application, encapsulating Windows objects in my own classes and making calls to the Win32 API. I even handled the details of image bits manipulation in order to plot the desired dots.

2) I did not wait the application to become complete to diffuse it. The way it is now is enough for taking much advantage of it. In the MSX times I spent lots of time developing the so called "Digo´s Sprite Designer". I made four incomplete versions of that program, each of them better than the previous one. In the end, I did not diffuse any version of the program, time passed, MSX lost space in Brazil and I had to handle an enormous frustration. I do not want to repeat the same mistake.

First motivations

On a certain time, an idea to colour drawings available in gray scale popped in my head: to create an image that should work as a colors map and a routine to mix the two images. Excited, I made a very primitive program that just read two bitmap files with the same dimensions and of 24 bits color depth (Shades.bmp and Colors.bmp) and generated an Output.bmp file with the mixture of the images. It's a simple idea, but it's cool to see it working!


Shades.bmp + Colors.bmp + (nice tiny program) = Output.bmp

The gray scale image was the result of a drawing made with mechanical pencil and pen that was scanned and briefly treated with Photo Editor and Paint, both Microsoft applications. The image that worked as a colors map was made with Paint, starting from a copy of the gray scale image.

You may have noticed that producing the colors map that way is a brutal work. The colors regions delimitation is done pixel by pixel and delimiting onde region does not make easier to paint an adjacent region with another color. The Paint application painting function spreads color only within a connected region that has a same color. That made me wish a tool to paint regions delimited by a certain color, in order to considerably reduce that amount of work. It was then that I resolved to modify a MDI application embryo I had been working on so that it could open bitmap files, paint regions delimited by a certain color and save the resulting images. So started my graphics editor for Win32.

Afterwards, the editor grew considerably and became much more friendly. The images merging routine is inserted and improved in the clipping pasting function. There are other interesting features in the application, as mentioned previously in this page.

You may think that that way of colouring images is rough and I will agree with you. A Photoshop user surely does a much better job within much less time. Yep! But that MDI application embryo had the objective of preparing an infrastructure for trim applications development, entirely written in C++. Pixel Pocketknife fully served to that purpose. And what did really matter in this case is that, as a programmer, I like to see implementations of ideas working. This makes me feel good!

Download (free)

Interested? Yay! Click one of the links below to download the application.

  PixPocEnglish.zip   (143 KB - version 2.03.00 in English)

  PixPocPortugues.zip   (143 KB - version 2.03.00 in Portuguese)

To put the editor to work, just extract the PixPoc.exe executable contained in the downloaded Zip file and save it in a folder that is convenient for you. That executable can be activated as a regular application. There aren't any other files in that Zip and no installation procedure is necessary. Pixel Pocketknife will not make any changes in Windows registry. So, if you wish to remove the application from your computer, deleting PixPoc.exe will suffice. Yup!

Right now, the chances of existing new versions of the application is small. Anyway, the versions numbering works this way:

  • The first number (before the first dot) is incremented only when the application undergoes heavy changes;
  • The second number (between the two dots) is incremented when something new is added to the application;
  • The third and last number is incremented when the application is modified with the sole purpose of fixing existing features;
  • When a number is incremented, the less significant numbers (if any) are reset to zero.

Help and feedback

Pixel Pocketknife always depended on a series of favourable conditions to grow and was never directly responsible for a penny to come to my pocket. There is no documentation that explains how to use it and the support is conditioned to my availability of free time.

If you give Pixel Pocketknife a try and have any comments, doubts, problems or suggestions, please, let me know. Contact me by e-mail or Skype (user quindigo).