Pixel Tanks Mac OS

Posted on  by

PikoPixel is a free, open-source Mac application for drawing & editing pixel-art images. PikoPixel also runs on other Unix-like platforms (Linux, BSD), using the GNUstep framework. The most well known software that is also great for pixel art is Photoshop. If you don't have access to it and are looking for the next best alternative, look at GIMP. I've been happily using it on Macs since around 2010 and it has everything you need for pixel art. Best of all, it's free and open source!

A graphics context represents a drawing destination. It contains drawing parameters and all device-specific information that the drawing system needs to perform any subsequent drawing commands. A graphics context defines basic drawing attributes such as the colors to use when drawing, the clipping area, line width and style information, font information, compositing options, and several others.

You can obtain a graphics context by using Quartz context creation functions or by using higher-level functions provided by one of the Mac OS X frameworks or the UIKit framework in iOS. Quartz provides functions for various flavors of Quartz graphics contexts including bitmap and PDF, which you can use to create custom content.

This chapter shows you how to create a graphics context for a variety of drawing destinations. A graphics context is represented in your code by the data type CGContextRef, which is an opaque data type. After you obtain a graphics context, you can use Quartz 2D functions to draw to the context, perform operations (such as translations) on the context, and change graphics state parameters, such as line width and fill color.

Drawing to a View Graphics Context in iOS

To draw to the screen in an iOS application, you set up a UIView object and implement its drawRect: method to perform drawing. The view’s drawRect: method is called when the view is visible onscreen and its contents need updating. Before calling your custom drawRect: method, the view object automatically configures its drawing environment so that your code can start drawing immediately. As part of this configuration, the UIView object creates a graphics context (a CGContextRef opaque type) for the current drawing environment. You obtain this graphics context in your drawRect: method by calling the UIKit function UIGraphicsGetCurrentContext.

The default coordinate system used throughout UIKit is different from the coordinate system used by Quartz. In UIKit, the origin is in the upper-left corner, with the positive-y value pointing downward. The UIView object modifies the CTM of the Quartz graphics context to match the UIKit conventions by translating the origin to the upper left corner of the view and inverting the y-axis by multiplying it by -1. For more information on modified-coordinate systems and the implications in your own drawing code, see Quartz 2D Coordinate Systems.

UIView objects are described in detail in View Programming Guide for iOS.

Creating a Window Graphics Context in Mac OS X

When drawing in Mac OS X, you need to create a window graphics context that’s appropriate for the framework you are using. The Quartz 2D API itself provides no functions to obtain a windows graphics context. Instead, you use the Cocoa framework to obtain a context for a window created in Cocoa.

You obtain a Quartz graphics context from within the drawRect: routine of a Cocoa application using the following line of code:

The method currentContext returns the NSGraphicsContext instance of the current thread. The method graphicsPort returns the low-level, platform-specific graphics context represented by the receiver, which is a Quartz graphics context. (Don’t get confused by the method names; they are historical.) For more information see NSGraphicsContext Class Reference.

After you obtain the graphics context, you can call any of the Quartz 2D drawing functions in your Cocoa application. You can also mix Quartz 2D calls with Cocoa drawing calls. You can see an example of Quartz 2D drawing to a Cocoa view by looking at Figure 2-1. The drawing consists of two overlapping rectangles, an opaque red one and a partially transparent blue one. You’ll learn more about transparency in Color and Color Spaces. The ability to control how much you can “see through” colors is one of the hallmark features of Quartz 2D.

To create the drawing in Figure 2-1, you first create a Cocoa application Xcode project. In Interface Builder, drag a Custom View to the window and subclass it. Then write an implementation for the subclassed view, similar to what Listing 2-1 shows. For this example, the subclassed view is named MyQuartzView. The drawRect: method for the view contains all the Quartz drawing code. A detailed explanation for each numbered line of code appears following the listing.

Note: The drawRect: method of the NSView class is invoked automatically each time the view needs to be drawn. To find out more about overriding the drawRect: method, see NSView Class Reference.

Listing 2-1 Drawing to a window graphics context

Here’s what the code does:

  1. Obtains a graphics context for the view.

  2. This is where you insert your drawing code. The four lines of code that follow are examples of using Quartz 2D functions.

  3. Sets a red fill color that’s fully opaque. For information on colors and alpha (which sets opacity), see Color and Color Spaces.

  4. Fills a rectangle whose origin is (0,0) and whose width is 200 and height is 100. For information on drawing rectangles, see Paths.

  5. Sets a blue fill color that’s partially transparent.

  6. Fills a rectangle whose origin is (0,0) and whose width is 100 and height is 200.

Creating a PDF Graphics Context

When you create a PDF graphics context and draw to that context, Quartz records your drawing as a series of PDF drawing commands written to a file. You supply a location for the PDF output and a default media box—a rectangle that specifies bounds of the page. Figure 2-2 shows the result of drawing to a PDF graphics context and then opening the resulting PDF in Preview.

The Quartz 2D API provides two functions that create a PDF graphics context:

  • CGPDFContextCreateWithURL, which you use when you want to specify the location for the PDF output as a Core Foundation URL. Listing 2-2 shows how to use this function to create a PDF graphics context.

  • CGPDFContextCreate, which you use when you want the PDF output sent to a data consumer. (For more information see Data Management in Quartz 2D.) Listing 2-3 shows how to use this function to create a PDF graphics context.

A detailed explanation for each numbered line of code follows each listing.

iOS Note: A PDF graphics context in iOS uses the default coordinate system provided by Quartz, without applying a transform to match the UIKit coordinate system. If your application plans on sharing drawing code between your PDF graphics context and the graphics context provided by UIView object, your application should modify the CTM of the PDF graphics context to modify the coordinate system. See Quartz 2D Coordinate Systems.

Listing 2-2 Calling CGPDFContextCreateWithURL to create a PDF graphics context

Here’s what the code does:

  1. Calls the Core Foundation function to create a CFURL object from the CFString object supplied to the MyPDFContextCreate function. You pass NULL as the first parameter to use the default allocator. You also need to specify a path style, which for this example is a POSIX-style pathname.

  2. Calls the Quartz 2D function to create a PDF graphics context using the PDF location just created (as a CFURL object) and a rectangle that specifies the bounds of the PDF. The rectangle (CGRect) was passed to the MyPDFContextCreate function and is the default page media bounding box for the PDF.

  3. Releases the CFURL object.

  4. Returns the PDF graphics context. The caller must release the graphics context when it is no longer needed.

Listing 2-3 Calling CGPDFContextCreate to create a PDF graphics context

Here’s what the code does:

  1. Calls the Core Foundation function to create a CFURL object from the CFString object supplied to the MyPDFContextCreate function. You pass NULL as the first parameter to use the default allocator. You also need to specify a path style, which for this example is a POSIX-style pathname.

  2. Creates a Quartz data consumer object using the CFURL object. If you don’t want to use a CFURL object (for example, you want to place the PDF data in a location that can’t be specified by a CFURL object), you can instead create a data consumer from a set of callback functions that you implement in your application. For more information, see Data Management in Quartz 2D.

  3. Calls the Quartz 2D function to create a PDF graphics context passing as parameters the data consumer and the rectangle (of type CGRect) that was passed to the MyPDFContextCreate function. This rectangle is the default page media bounding box for the PDF.

  4. Releases the data consumer.

  5. Releases the CFURL object.

  6. Returns the PDF graphics context. The caller must release the graphics context when it is no longer needed.

Listing 2-4 shows how to call the MyPDFContextCreate routine and draw to it. A detailed explanation for each numbered line of code appears following the listing.

Listing 2-4 Drawing to a PDF graphics context

Here’s what the code does:

  1. Declares a variable for the rectangle that you use to define the PDF media box.

  2. Sets the origin of the media box to (0,0) and the width and height to variables supplied by the application.

  3. Calls the function MyPDFContextCreate (See Listing 2-3) to obtain a PDF graphics context, supplying a media box and a pathname. The macro CFSTR converts a string to a CFStringRef data type.

  4. Sets up a dictionary with the page options. In this example, only the media box is specified. You don’t have to pass the same rectangle you used to set up the PDF graphics context. The media box you add here supersedes the rectangle you pass to set up the PDF graphics context.

  5. Signals the start of a page. This function is used for page-oriented graphics, which is what PDF drawing is.

  6. Calls Quartz 2D drawing functions. You replace this and the following four lines of code with the drawing code appropriate for your application.

  7. Signals the end of the PDF page.

  8. Releases the dictionary and the PDF graphics context when they are no longer needed.

You can write any content to a PDF that’s appropriate for your application—images, text, path drawing—and you can add links and encryption. For more information see PDF Document Creation, Viewing, and Transforming.

Creating a Bitmap Graphics Context

A bitmap graphics context accepts a pointer to a memory buffer that contains storage space for the bitmap. When you paint into the bitmap graphics context, the buffer is updated. After you release the graphics context, you have a fully updated bitmap in the pixel format you specify.

Note: Bitmap graphics contexts are sometimes used for drawing offscreen. Before you decide to use a bitmap graphics context for this purpose, see Core Graphics Layer Drawing. CGLayer objects (CGLayerRef) are optimized for offscreen drawing because, whenever possible, Quartz caches layers on the video card.

iOS Note: iOS applications should use the function UIGraphicsBeginImageContextWithOptions instead of using the low-level Quartz functions described here. If your application creates an offscreen bitmap using Quartz, the coordinate system used by bitmap graphics context is the default Quartz coordinate system. In contrast, if your application creates an image context by calling the function UIGraphicsBeginImageContextWithOptions, UIKit applies the same transformation to the context’s coordinate system as it does to a UIView object’s graphics context. This allows your application to use the same drawing code for either without having to worry about different coordinate systems. Although your application can manually adjust the coordinate transformation matrix to achieve the correct results, in practice, there is no performance benefit to doing so.

You use the function CGBitmapContextCreate to create a bitmap graphics context. This function takes the following parameters:

  • data. Supply a pointer to the destination in memory where you want the drawing rendered. The size of this memory block should be at least (bytesPerRow*height) bytes.

  • width. Specify the width, in pixels, of the bitmap.

  • height. Specify the height, in pixels, of the bitmap.

  • bitsPerComponent. Specify the number of bits to use for each component of a pixel in memory. For example, for a 32-bit pixel format and an RGB color space, you would specify a value of 8 bits per component. See Supported Pixel Formats.

  • bytesPerRow. Specify the number of bytes of memory to use per row of the bitmap.

    Tip: When you create a bitmap graphics context, you’ll get the best performance if you make sure the data and bytesPerRow are 16-byte aligned.

  • colorspace. The color space to use for the bitmap context. You can provide a Gray, RGB, CMYK, or NULL color space when you create a bitmap graphics context. For detailed information on color spaces and color management principles, see Color Management Overview. For information on creating and using color spaces in Quartz, see Color and Color Spaces. For information about supported color spaces, see Color Spaces and Bitmap Layout in the Bitmap Images and Image Masks chapter.

  • bitmapInfo. Bitmap layout information, expressed as a CGBitmapInfo constant, that specifies whether the bitmap should contain an alpha component, the relative location of the alpha component (if there is one) in a pixel, whether the alpha component is premultiplied, and whether the color components are integer or floating-point values. For detailed information on what these constants are, when each is used, and Quartz-supported pixel formats for bitmap graphics contexts and images, see Color Spaces and Bitmap Layout in the Bitmap Images and Image Masks chapter.

Listing 2-5 shows how to create a bitmap graphics context. When you draw into the resulting bitmap graphics context, Quartz records your drawing as bitmap data in the specified block of memory. A detailed explanation for each numbered line of code follows the listing.

Listing 2-5 Creating a bitmap graphics context

Here’s what the code does:

  1. Declares a variable to represent the number of bytes per row. Each pixel in the bitmap in this example is represented by 4 bytes; 8 bits each of red, green, blue, and alpha.

  2. Creates a generic RGB color space. You can also create a CMYK color space. See Color and Color Spaces for more information and for a discussion of generic color spaces versus device dependent ones.

  3. Calls the calloc function to create and clear a block of memory in which to store the bitmap data. This example creates a 32-bit RGBA bitmap (that is, an array with 32 bits per pixel, each pixel containing 8 bits each of red, green, blue, and alpha information). Each pixel in the bitmap occupies 4 bytes of memory. In Mac OS X 10.6 and iOS 4, this step can be omitted—if you pass NULL as bitmap data, Quartz automatically allocates space for the bitmap.

  4. Creates a bitmap graphics context, supplying the bitmap data, the width and height of the bitmap, the number of bits per component, the bytes per row, the color space, and a constant that specifies whether the bitmap should contain an alpha channel and its relative location in a pixel. The constant kCGImageAlphaPremultipliedLast indicates that the alpha component is stored in the last byte of each pixel and that the color components have already been multiplied by this alpha value. See The Alpha Value for more information on premultiplied alpha.

  5. If the context isn’t created for some reason, frees the memory allocated for the bitmap data.

  6. Releases the color space.

  7. Returns the bitmap graphics context. The caller must release the graphics context when it is no longer needed.

Listing 2-6 shows code that calls MyCreateBitmapContext to create a bitmap graphics context, uses the bitmap graphics context to create a CGImage object, then draws the resulting image to a window graphics context. Figure 2-3 shows the image drawn to the window. A detailed explanation for each numbered line of code follows the listing.

Listing 2-6 Drawing to a bitmap graphics context

Here’s what the code does:

  1. Declares a variable to store the origin and dimensions of the bounding box into which Quartz will draw an image created from the bitmap graphics context.

  2. Sets the origin of the bounding box to (0,0) and the width and height to variables previously declared, but whose declaration are not shown in this code.

  3. Calls the application-supplied function MyCreateBitmapContext (see Listing 2-5) to create a bitmap context that is 400 pixels wide and 300 pixels high. You can create a bitmap graphics context using any dimensions that are appropriate for your application.

  4. Calls Quartz 2D functions to draw into the bitmap graphics context. You would replace this and the next four lines of code with drawing code appropriate for your application.

  5. Creates a Quartz 2D image (CGImageRef) from the bitmap graphics context.

  6. Draws the image into the location in the window graphics context that is specified by the bounding box. The bounding box specifies the location and dimensions in user space in which to draw the image.

    This example does not show the creation of the window graphics context. See Creating a Window Graphics Context in Mac OS X for information on how to create one.

  7. Gets the bitmap data associated with the bitmap graphics context.

  8. Releases the bitmap graphics context when it is no longer needed.

  9. Free the bitmap data if it exists.

  10. Releases the image when it is no longer needed.

Supported Pixel Formats

Table 2-1 summarizes the pixel formats that are supported for bitmap graphics context, the associated color space (cs), and the version of Mac OS X in which the format was first available. The pixel format is specified as bits per pixel (bpp) and bits per component (bpc). The table also includes the bitmap information constant associated with that pixel format. See CGImage Reference for details on what each of the bitmap information format constants represent.

Table 2-1 Pixel formats supported for bitmap graphics contexts

CS

Pixel format and bitmap information constant

Availability

Null

8 bpp, 8 bpc, kCGImageAlphaOnly

Mac OS X, iOS

Gray

8 bpp, 8 bpc,kCGImageAlphaNone

Mac OS X, iOS

Gray

8 bpp, 8 bpc,kCGImageAlphaOnly

Mac OS X, iOS

Gray

16 bpp, 16 bpc, kCGImageAlphaNone

Mac OS X

Gray

32 bpp, 32 bpc, kCGImageAlphaNonekCGBitmapFloatComponents

Mac OS X

RGB

16 bpp, 5 bpc, kCGImageAlphaNoneSkipFirst

Mac OS X, iOS

RGB

32 bpp, 8 bpc, kCGImageAlphaNoneSkipFirst

Mac OS X, iOS

RGB

32 bpp, 8 bpc, kCGImageAlphaNoneSkipLast

Mac OS X, iOS

RGB

32 bpp, 8 bpc, kCGImageAlphaPremultipliedFirst

Mac OS X, iOS

RGB

32 bpp, 8 bpc, kCGImageAlphaPremultipliedLast

Mac OS X, iOS

RGB

64 bpp, 16 bpc, kCGImageAlphaPremultipliedLast

Mac OS X

RGB

64 bpp, 16 bpc, kCGImageAlphaNoneSkipLast

Mac OS X

RGB

128 bpp, 32 bpc, kCGImageAlphaNoneSkipLastkCGBitmapFloatComponents

Mac OS X

RGB

128 bpp, 32 bpc, kCGImageAlphaPremultipliedLastkCGBitmapFloatComponents

Mac OS X

CMYK

32 bpp, 8 bpc, kCGImageAlphaNone

Mac OS X

CMYK

64 bpp, 16 bpc, kCGImageAlphaNone

Mac OS X

CMYK

128 bpp, 32 bpc, kCGImageAlphaNonekCGBitmapFloatComponents

Mac OS X

Anti-Aliasing

Bitmap graphics contexts support anti-aliasing, which is the process of artificially correcting the jagged (or aliased) edges you sometimes see in bitmap images when text or shapes are drawn. These jagged edges occur when the resolution of the bitmap is significantly lower than the resolution of your eyes. To make objects appear smooth in the bitmap, Quartz uses different colors for the pixels that surround the outline of the shape. By blending the colors in this way, the shape appears smooth. You can see the effect of using anti-aliasing in Figure 2-4. You can turn anti-aliasing off for a particular bitmap graphics context by calling the function CGContextSetShouldAntialias. The anti-aliasing setting is part of the graphics state.

You can control whether to allow anti-aliasing for a particular graphics context by using the function CGContextSetAllowsAntialiasing. Pass true to this function to allow anti-aliasing; false not to allow it. This setting is not part of the graphics state. Quartz performs anti-aliasing when the context and the graphic state settings are set to true.

Obtaining a Graphics Context for Printing

Cocoa applications in Mac OS X implement printing through custom NSView subclasses. A view is told to print by invoking its print: method. The view then creates a graphics context that targets a printer and calls its drawRect: method. Your application uses the same drawing code to draw to the printer that it uses to draw to the screen. It can also customize the drawRect: call to an image to the printer that is different from the one sent to the screen.

For a detailed discussion of printing in Cocoa, see Printing Programming Guide for Mac.



Copyright © 2001, 2017 Apple Inc. All Rights Reserved. Terms of Use Privacy Policy Updated: 2017-03-21

Disclosure: This post may contain affiliate links. That means if you buy something we get a small commission at no extra cost to you(learn more)

Pixel art has seen a big resurgence in popularity. New generations of artists and designers have taken up the digital brush to create modern pixel art masterpieces.

And as popularity for the pixel has grown, so has the number of tools for making it.

Choosing which tools you want to learn can be a challenge. So to help you decide which program to pick we’ve compiled a list of the best software for creating pixel art.

Whether you’re just starting out or looking to expand your skills, our guide will help you find the best pixel art software to fit with your needs.

Photoshop

Price: $9.99/mo
Platforms: Mac, Windows

Adobe Photoshop is the leading software for graphics editing & digital painting.

It should come as no surprise that it’s also a popular choice among pixel artists. While not made specifically for pixel art, Photoshop contains all the tools necessary to create professional quality pixel art and animations(and so much more).

Photoshop can be somewhat cumbersome for beginners as it is feature-heavy.

But there are plenty of tutorials available on setting up the program for making pixel art.

If you plan to create high resolution images or textures then it’s worth it to start in Photoshop so your skills are concentrated in one program. This is much better than having to learn multiple workflows for many different programs.

One of the biggest benefits to Photoshop is the volume of resources available.

There’s a tutorial for pretty much anything you could image as well as free scripts and plugins for even more flexibility.

If you’re working towards a career in game development or design then it’s worth noting Photoshop is an industry standard. Having knowledge of the software will be a big help in landing a gig at a studio.

But this is also nice if you just want to make your own indie pixel art for fun. Photoshop really is the bee’s knees for brilliant pixel art.

Krita

Price: Free
Platforms: Mac, Windows, Linux

Krita is a free and open source professional painting program aimed at digital painters, cartoonists, illustrators, and concept artists.

Pixel tanks mac os 8

With some minor configuration changes Krita can be used for beautiful & professional pixel art.

Because the program is tailor-made for painters, many artists will find the workflow is very natural and easy to learn.

Krita is perfect for those with a traditional background in painting who want to transition into digital art. In 2015 the Krita community crowdfunded for an animation feature making it fully capable of adding motion into your pixel artwork.

While not as feature-rich as Photoshop or GIMP, Krita has many tools that you won’t find in programs dedicated to pixel art creation alone.

Depending on your needs this may be a benefit.

If you’re looking for a program that can handle both pixel art and high-resolution illustration work, and even animation, then Krita might be exactly what you’re looking for.

When it comes to a digital painting program Krita is hard to match—especially for the price of free.

On the other hand, Krita’s documentation is lackluster or missing in some areas, especially those features that have been recently added. Although you can find plenty of great tutorials online for free.

As a niche tool it also lacks the robust communities that you’ll find around some other software.

But with its easy-to-use and customizable layout Krita is solid choice for beginners and experienced artists alike.

GIMP

Price: Free
Platforms: Mac, Windows, Linux

GIMP is an open source image editor probably best known as the “free alternative” to Photoshop.

It boasts a powerful set of general image editing tools and painting tools.

Because of the easy-to-use layout and highly customizable interface, GIMP is a popular choice for artists of all backgrounds and styles.

GIMP comes with all the tools you’ll need to make professional pixel art. There’s even a built-in timeline and animation player much like Photoshop.

This makes it a great choice for those who are looking for a one-size-fits-all solution to image editing. It will be easy to transfer your pixel art skills to photo manipulation and graphic design if you choose to do so.

Because of its popularity GIMP enjoys the support of a large community of creators and you’ll find plenty of tutorials for the program as well as a plethora of plugins to suit your needs.

It’s a great choice for those on a budget looking for something that can handle pixel art along with image editing, painting, graphics design, and more.

Aseprite

Price: $15
Platforms: Mac, Windows, Linux

Aseprite is a very popular and highly recommended program designed for pixel art.

Pixel Tanks Mac OS

It’s well worth the $15 price tag for the final software. But those with some tech skills will be happy to learn that Aseprite is available for free if you’re willing to compile it yourself.

Pixel Tanks Mac Os Catalina

Now Aseprite is popular for good reason.

Many artists love the streamlined interface and pixel art aesthetic. It’s a lightweight but fully capable program that is extremely easy to learn.

It comes with features like onion skinning – the ability to overlay frames before and after the one you’re working on – that make animation a breeze. And the timeline itself is very accessible for beginners.

Aseprite can also automatically convert fonts to pixel art which is very handy for game development and user interface design.

There is a wrapping tool that makes it crazy easy to design tiles so that they repeat on the edges. This is a big deal in pixel art.

Aseprite has some of the best sprite sheet exporting tools I’ve seen in any software, making it a must-try for those who are serious about creating pixel art for video games.

Pyxel Edit

Price: $9
Platforms: Mac,Windows

Pyxel Edit is another popular program beloved by pixel artists worldwide.

It’s known for its ease-of-use and user-friendly interface. While there is a free version available out there, it lacks many of the features that make Pyxel Edit a worthy choice.

The elegant interface is a big selling point for Pyxel Edit.

The program contains all the features necessary for creating static and animated images, including animation onion skinning which lets you overlay sequential frames in your pixel art.

At only $9 Pyxel Edit may be the perfect choice for those working with a low budget.

Pyxel Edit is best known for its powerful tileset creation tools.

Working with tilemaps can be a tedious process for any artist, but Pyxel Edit is here to help with a set of tools designed to speed up the workflow. Tilesets can be easily imported and exported or converted to XML or JSON filetypes for use in game engines.

Game designers working on multiple tilemaps might find that Pyxel Edit saves them a lot of time and hassle. It’s just a great tool for anyone serious about(or getting into) pixel art.

GraphicsGale

Price: Free
Platforms: Windows

GraphicsGale has an old-school aesthetic to the GUI. But don’t let that fool you since it packs quite a punch!

Not only is it available for free, but it comes with all the features you’d expect from a program dedicated to pixel art.

It supports drawing, animation, layering, palette control, and much more.

GraphicsGale can export to several file formats too. It can handle both GIFs and sprite sheets making the program flexible enough to fit most workflows.

With GraphicsGale you can preview your animations in real time, which can greatly speed up the animation process if you’re into that kinda thing.

Another great feature is the ability to import images directly from a scanner or a camera using TWAIN imaging. This is great for artists who prefer to lay out their ideas on paper and then digitize them.

Unfortunately GraphicsGale is only available on Windows. It’s also missing some hotkey support compared to other programs.

This could be a problem for some artists but if you’re on a Windows machine then GraphicsGale is worth checking out.

Paint.NET

Price: Free
Platforms: Windows

Paint.NET is widely used as an alternative to Photoshop and GIMP by the Windows crowd. It should run on all versions of Windows from XP to Win10 and beyond with frequent updates from the team.

While not as robust as either GIMP or Photoshop, I do think Paint.NET is easy to use once you get past the interface.

It’ll also handle basic image editing so it’s a good choice for pixel artist who are looking for a lightweight program that can handle more than pixel art.

Paint.NET has a great community with plenty of tutorials and an active user base that can help you get started making your own sprites and other images.

Support for advanced features are available through plugins making the program more flexible than some of its competitors.

Compared to Photoshop and GIMP, Paint.NET is very easy to learn and will not require much time to pick up.

There are, however, a few major limitations.

For one, Paint.NET is only available on Windows. In addition Paint.NET doesn’t support multi-image editing, meaning you can only have one image open at a time.

This can be a big hindrance no matter what you’re using this for.

Despite these drawbacks Paint.NET is still a fun choice to try for budding pixel artists working in the Microsoft ecosystem.

Piskel

Price: Free
Platforms: Mac, Windows, Linux, Online

Piskel is a streamlined program dedicated to creating pixel art and animation.

It’s an excellent choice for artists looking for a free, bare-bones solution to their pixel art needs.

Not only is it offered as a free download, but there’s a web version available so you can try it out in your browser!

The clean interface means you can get up and running with Piskel in no time. There’s an animation previewer that provides real time playback which makes animating your sprites a breeze.

It packs enough features to meet most of your needs while being simple enough that beginners can easily learn the tools.

Piskel can export static images, GIF animations, and Spritesheets. Or all three!

I’ve seen some artist complain that Piskel is a little too limited.

And while it does lack certain advanced features, I think that may be part of the appeal for many of its fans. Sometimes minimalism is exactly what you’re looking for.

Piskel is a fantastic tool for those artists looking for a no-clutter program that puts nothing between them and their art.

Pixie Engine Editor

Price: Free
Platforms: Online

The Pixie Engine Editor is a free online tool that offers the very basic features necessary for making pixel art.

Most artists will find this program too limited for professional work. But beginners might enjoy it as a hassle free starting point for learning pixel art.

Unfortunately you can’t do much more than draw static images, but it does have a full color palette and the ability to save and open images.

There’s a community gallery on the site for browsing the work of other artists which is a great way to study others and learn.

The Pixie Engine Editor also comes with a Tune composer which is handy for game developers looking to make some music or sound effects for their games.

As it stands I could see this editor being useful for game jams or prototypes where speed is more important than beauty.

The source code for the Pixie Engine is also available for free on GitHub if you’d like to fork the repository and use it as a base for your own pixel art creator.

GrafX2

Price: Free
Platforms: Mac, Windows, Linux

GrafX2 is a bitmap image editor inspired by Amiga Deluxe Paint. The original version was released over 20 years ago but the source code was later released as an open source project.

It has since been rebooted for contemporary machines and updated with brand new features.

GrafX2 is a fan favorite not only because of its retro origins, but because it boasts a powerful toolset and an intuitive interface.

It has everything you’d expect in a drawing program plus many unique features that make it a popular choice for artists.

There’s a “Spline” tool which allows for drawing perfect curves and a “Merge” tool which merges colors based on averages.

The “Histogram” tool will show a pallet of all colors used in an image and how many pixels they populate.

GrafX2 is scriptable in Lua which allows for automation and custom functionality. It also has features for working with repeat tilesets.

Because of its age, GrafX2 also has a large community and plenty of learning resources on sites like YouTube.

Not only does GrafX2 have a wide set of tools and effects, but its supports frame animation as well.

And despite having so many features GrafX2 is very easy to learn. Beginners can be up and running in a matter of hours. The software is also totally open sourced meaning it’s free to use, copy, and modify on all platforms.

The only complaints I’ve seen of GrafX2 is that the user interface looks ancient.

Personally I find the retro aesthetic charming and suitable to the art of pixel design, but that’s just me. Even with that drawback, the amount of features you get with this free program make it a must-try for any pixel artist.

iDraw

Price: Free
Platforms: Windows

iDraw is another simple pixel art editor that is mostly used by the RPG Maker community.

It comes with all the basic features you’d expect: selection tools, drawing tools, a customizable palette, etc. iDraw is popular among pixel artist who work mainly in the JRPG style that was popular in the 90’s.

Many years ago it was not unusual to see people using pirated copies of RPG Maker 2003 and iDraw to create their own RPG’s with custom sprites.

Now that RPG Maker 2003 has been revamped and released on Steam for $5 bucks, I suspect some users will want to download iDraw to complete their nostalgia.

As far as pixel art editors go, iDraw isn’t bad. But it lacks modern features for animation and the user interface is clearly dated.

This will probably turn off a lot of newcomers looking for a more contemporary program.

On the plus side, the RPG Maker community is alive and still going strong. So you’ll find tutorials for using these programs together all over YouTube.

I expect to see a bunch of these old-school RPG’s as people rediscover the joys of RPG Maker with iDraw.

Tile Studio

Price: Free
Platforms: Windows

Tile Studio is a graphics editor made for tile-based game art.

It contains a bitmap editor for creating tiles as well as a level editor for designing tile maps. Tile Studio will work with just about any programming language and can be customized to output maps, animation sequences, bitmaps, and color palettes to use with your own code.

This makes Tile Studio especially useful for level designers and game studios.

The program is open source and available for free on Windows.

With Tile Studio you can import tiles for existing images making it possible to reuse tiles from other programs. While the level editor is the main draw here, it also contains a fully capable bitmap editor complete with drawing tools and special effects.

Creating animations is easy and intuitive although it lacks some features compared to bigger programs.

After creating your frames you have the options of exporting them as either a sprite sheet or a tile sequence, which can be super handy for game developers.

Pixel Tanks Mac Os X

While most of Tile Studio’s features are easy to use, some of the advanced tools can be difficult for beginners. Luckily the documentation is detailed and complete with tutorials to get you up to speed.

If you’re looking for a program designed to make tile-based level design as painless as possible then Tile Studio may be just what you’re looking for.

PikoPixel

Price: Free
Platforms: Mac, Linux

Piko Pixel is a free and open source application for creating pixel art on Mac and Linux.

The program is both easy to use and offers several features including a customizable canvas, unlimited undos, hotkey-activated popup panels, and layering.

It’s a good alternative to some of the Windows-only programs in the pixel art world.

While there are a few demos available to help you get started, the interface is so simple that I doubt you’ll need them.

Everything is self-explanatory and uncomplicated. This is very common with Mac programs but I’m surprised how well it works on Linux too.

While it lacks the advanced features of other pixel art programs, Piko can produce quality graphics in the right hands. Decent for beginners but maybe a little better for semi-experienced pixel artists.

Pixilart

Price: Free
Platforms: Online

Pixilart is much more than a drawing app. It/s marketed as a free online social platform for creative minds and game enthusiasts who want to learn about creating digital art.

It boasts over 10,000 new users a month, offers art contests, and provides a strong community geared toward getting young people involved in game design.

Founded in 2013, Pixilart set out to become THE social networking site for pixel art enthusiasts.

Even without the social aspect, Pixilart is worth checking out.

The drawing app is a delight to use with a sleek and modern interface. It packs all the basic features you’d expect from a pixel art program as well as some advanced tools like pixel-perfect drawing, easy dithering, frame animation, pixel text support, full screen mode, an autosave feature, and so much more.

With a plethora of settings and options Pixelart is highly customizable to suit any workflow.

Despite being geared to children and beginners, Pixelart is capable of professional work too.

In fact some pro artists will love the simplicity of the design. And because of the social aspect of the application it’s easy to find help others.

Also there’s tooltips you can toggle to guide your learning in case you’re having trouble.

Overall I found Pixelart to be one of the most impressive web-based pixel art apps available. I highly recommend it to beginners and advanced users alike.

Lospec Pixel Editor

Price: Free
Platforms: Online

Lospec is a relatively new web-based pixel editor designed to be accessible, pixel-perfect, and intuitive for all users.

Its goal is to be simple enough for the first time pixel artist while still being powerful enough for veterans.

As of writing this article the application is still in the early stages of development, but it already shows promise with a solid interface and an easy to understand toolset.

While currently lacking many of the top features necessary for serious professional work, Lospec is a good starting point considering the price and easy access(it all works online!)

It’s definitely worth keeping an eye on as the developers continue to update the app.

Related Posts: