-->
This article describes how to work with the Visual Studio Image Editor to view and modify texture and image resources.
You can use the Image Editor to work with the kinds of rich texture and image formats that are used in DirectX app development. This includes support for popular image file formats and color encodings, features such as alpha-channels and MIP-mapping, and many of the highly compressed, hardware-accelerated texture formats that DirectX supports.
Supported formats
Acorn 6.0.1 – Bitmap image editor. Acorn is a brand new picture editor built with one goal in mind — simplicity. Fast, easy, and fluid, Acorn provides the options you’ll need with no overhead. Acorn feels right, and will not drain your bank account. For years Adobe Photoshop was my image editor. I used it on a Windows PC. Then switched to the Mac version. Now my first choice image editor is Flying Meat’s Acorn 6. Acorn only runs on a Mac. Last week the software updated from version 5 to 6. The upgrade brings a. Layer masks are currently bitmap only, which means vector shapes cannot be used in the mask. There is a nifty work around you can use if you want to use a shape as a mask using the ‘mask’ blending mode. If you aren't familiar with how layer masks work, be sure to read the layer masks documentation, and fun with layer masks tutorial as well.
The Image Editor supports the following image formats:
Format name | File Name Extension |
---|---|
Portable Network Graphics | .png |
JPEG | .jpg, .jpeg, .jpe, .jfif |
Direct Draw Surface | .dds |
Graphics Interchange Format | .gif |
Bitmap | .bmp, .dib |
Tagged Image File Format | .tif, .tiff |
TGA (Targa) | .tga |
Get started
This section describes how to add an image to your Visual Studio project and configure it for your requirements.
Add an image to your project
- In Solution Explorer, open the shortcut menu for the project that you want to add the image to, and then choose Add > New Item.
- In the Add New Item dialog box, under Installed, select Graphics, and then select an appropriate file format for the image.If you don't see the Graphics category in the Add New Item dialog, you may need to install the Image and 3D model editors component. Close the dialog and then select Tools > Get Tools and Features from the menu bar, to open the Visual Studio Installer. Select the Individual components tab, and then select the Image and 3D model editors component under the Games and Graphics category. Select Modify.For information about how to choose a file format based on your requirements, see Choose the image format.
- Specify the Name of the image file and the Location where you want it to be created.
- Choose the Add button.
Choose the image format
Depending on how you plan to use the image, certain file formats might be more appropriate than others. For example, some formats might not support a feature that you need, for example, transparency or a specific color format. Some formats might not provide suitable compression for the kind of image content you have planned.
The following information can help you choose an image format that meets your needs:
Bitmap Image (.bmp)
The bitmap image format. An uncompressed image format that supports 24-bit color. The bitmap format doesn't support transparency.
GIF Image (.gif)
The Graphics Interchange Format (GIF) image format. An LZW-compressed, lossless image format that supports up to 256 colors. Unsuitable for photographs and images that have a significant amount of color detail, but provides good compression ratios for low-color images that have a high degree of color coherence.
JPG Image (.jpg)
Phonerescue 3 2 3. The Joint Photographic Experts Group (JPEG) image format. A highly compressed, lossy image format that supports 24-bit color and is suitable for general-purpose compression of images that have a high degree of color coherence.
PNG Image (.png)
The Portable Network Graphics (PNG) image format. A moderately compressed, lossless image format that supports 24-bit color and alpha transparency. It is suitable for both natural and artificial images, but does not provide compression ratios as good as lossy formats such as JPG or GIF.
TIFF Image (.tif)
The Tagged Image File Format (TIFF or TIF) image format. A flexible image format that supports several compression schemes.
DDS Texture (.dds)
The DirectDraw Surface (DDS) texture format. A highly compressed, lossy texture format that supports 24-bit color and alpha transparency. Its compression ratios can be as high as 8:1. It's based on S3 Texture compression, which can be decompressed on graphics hardware.
TGA Image (.tga)
The Truevision Graphics Adapter (TGA) image format (also known as Targa). An RLE-compressed, lossless image format that supports both color-mapped (color palette) or direct-color images of up to 24-bit color and alpha transparency. Unsuitable for photographs and images that have a significant amount of color detail, but provides good compression ratios for images that have long spans of identical colors.
Configure the image
Before you begin to work with the image that you created, you can change its default configuration. For example, you can change its dimensions or the color format that it uses. For information about how to configure these and other properties of the image, see Image properties.
Note
Before you save your work, make sure to set the Color Format property if you want to use a specific color format. If the file format supports compression, you can adjust the compression settings when you save the file for the first time or when you choose Save As.
Work with the Image Editor
This section describes how to use the Image Editor to modify textures and images.
Commands that affect the state of the Image Editor are located on the Image Editor Mode toolbar together with advanced commands. The toolbar is located along the topmost edge of the Image Editor design surface. Drawing tools are located on the Image Editor toolbar along the leftmost edge of the Image Editor design surface.
Image Editor Mode toolbar
The following table describes the items on the Image Editor Mode toolbar, which are listed in the order in which they appear from left to right:
Toolbar Item | Description |
---|---|
Select | Enables selection of a rectangular region of an image. After you select a region, you can cut, copy, move, scale, rotate, flip, or delete it. When there is an active selection, drawing tools only affect the selected region. |
Irregular Selection | Enables selection of an irregular region of an image. After you select a region, you can cut, copy, move, scale, rotate, flip, or delete it. When there is an active selection, drawing tools only affect the selected region. |
Wand Selection | Enables selection of a similarly colored region of an image. The tolerance—that is, the maximum difference between adjacent colors within which they are considered similar—can be configured to include a smaller or wider range of similar colors. After you select a region, you can cut, copy, move, scale, rotate, flip, or delete it. When there is an active selection, drawing tools only affect the selected region. |
Pan | Enables movement of the image relative to the window frame. In Pan mode, select a point on the image and then move it around. You can temporarily activate Pan mode by pressing and holding the Ctrl key. |
Zoom | Enables the display of more or less image detail relative to the window frame. In Zoom mode, select a point on the image and then move it right or down to zoom in, or left or up to zoom out. You can zoom in or out by pressing and holding Ctrl while you either use the mouse wheel or press the plus sign (+) or minus sign (-). |
Zoom to Actual Size | Displays the image by using a 1:1 relationship between the pixels of the image and the pixels of the screen. |
Zoom To Fit | Displays the full image in the window frame. |
Zoom To Width | Displays the full width of the image in the window frame. |
Grid | Enables or disables the grid that shows pixel boundaries. The grid might not appear until you zoom into the image. |
View Next MIP Level | Activates the next larger MIP level in a MIP map chain. The active MIP level is displayed on the design surface. This item is only available for textures that have MIP levels. |
View Previous MIP Level | Activates the next smaller MIP level in a MIP map chain. The active MIP level is displayed on the design surface. This item is only available for textures that have MIP levels. |
Red Channel Green Channel Blue Channel Alpha Channel | Enables or disables the specific color channel. Note: By systematically enabling or disabling color channels, you can isolate problems that are related to one or more of them. For example, you could identify incorrect alpha transparency. |
Background | Enables or disables display of the background through transparent parts of the image. You can configure how the background is displayed by choosing from these options: Checkerboard Uses a green color together with the specified background color to display the background as a checkerboard pattern. You can use this option to help make transparent parts of the image more apparent. White Background Uses the color white to display the background. Black Background Uses the color black to display the background. Animate Background Pans the checkerboard pattern slowly. You can use this option to help make transparent parts of the image more apparent. |
Properties | Alternately opens or closes the Properties window. |
Advanced | Contains additional commands and options. Filters Provides several common image filters: Black and White, Blur, Brighten, Darken, Edge Detection, Emboss, Invert Colors, Ripple, Sepia Tone, and Sharpen. Graphics Engines Render with D3D11 Uses Direct3D 11 to render the Image Editor design surface. Render with D3D11WARP Uses Direct3D 11 Windows Advanced Rasterization Platform (WARP) to render the Image Editor design surface. Tools Flip Horizontal Transposes the image around its horizontal, or x, axis. Flip Vertical Transposes the image around its vertical, or y, axis. Generate Mips Generates MIP levels for an image. If MIP levels already exist, they are recreated from the largest MIP level. Any changes that were made to smaller MIP levels are lost. To save the MIP levels that you have generated, you must use the .dds format to save the image. View Frame Rate When enabled, displays the frame rate in the upper-right corner of the design surface. The frame rate is the number of frames that are drawn per second. Tip: You can choose the Advanced button to run the last command again. |
Image Editor toolbar
The following table describes the items on the Image Editor toolbar, which are listed in the order in which they appear from top to bottom:
Toolbar Item | Description |
---|---|
Pencil | Uses the active color selection to draw an aliased stroke. You can set the color and thickness of the stroke in the Properties window. |
Brush | Uses the active color selection to draw an anti-aliased stroke. You can set the color and thickness of the stroke in the Properties window. |
Airbrush | Uses the active color selection to draw an anti-aliased stroke that blends together with the image and becomes more saturated as a function of time. You can set the color and thickness of the stroke in the Properties window. |
Eyedropper | Sets the active color selection to the color of the selected pixel. |
Fill | Uses the active color selection to fill a region of the image. The affected region is defined as the pixel where the fill is applied, together with every pixel that is connected to it by pixels of the same color and that is the same color itself. If the fill is applied within an active selection, then the affected region is constrained by the selection. By default, the active color selection is blended together with the affected region of the image according to its alpha component. To use the active color selection to overwrite the affected region, press and hold the Shift key when you use the fill tool. |
Eraser | Sets pixels to the fully transparent color if the image supports an alpha channel. Otherwise, sets the pixels to the active background color. |
Line, Rectangle, Rounded Rectangle, Ellipse | Draws a shape on the image. You can set the color and thickness of the outline in the Properties window. To draw a primitive that has equal width and height, press and hold Shift as you draw. |
Text | Uses the foreground color selection to draw text. The background color is determined by the background color selection. For a transparent background, the alpha value of the background color selection must be 0. While the text region is active, you can set whether the text is drawn with an anti-aliased stroke, and you can set the text Value, Font, Size, and style--Bold, Italics, or Underlined—in the Properties window. The content and appearance of the text is finalized when the text region is no longer active. |
Rotate | Rotates the image 90 degrees clockwise. |
Trim | Trims the image to the active selection. |
Work with MIP levels
Some image formats, for example, DirectDraw Surface (.dds), support MIP levels for texture-space Level-of-Detail (LOD). For information about how to generate and work with MIP levels, see How to: Create and modify MIP levels
Work with transparency
Some image formats, for example, DirectDraw Surface (.dds), support transparency. There are several ways you can use transparency, depending on the tool that you're using. To specify the level of transparency for a color selection, in the Properties window, set the A (alpha) component of the color selection.
The following table describes how different kinds of tools control how transparency is applied:
Tool | Description |
---|---|
Pencil, Brush, Airbrush, Line, Rectangle, Rounded Rectangle, Ellipse, Text | To blend the active color selection together with the image, in the Properties window, expand the Channels property group and set the Draw checkbox on the Alpha channel, and then draw normally. To draw by using the active color selection and leave the alpha value of the image in place, clear the Draw checkbox of the Alpha channel, and then draw normally. |
Fill | To blend the active color selection together with the image, just choose the area to fill. To use the active color selection—including the value of the alpha channel—to overwrite the image, press and hold Shift and then choose the area to fill. |
Image properties
You can use the Properties window to specify various properties of the image. For example, you can set the width and height properties to resize the image.
The following table describes image properties:
Property | Description |
---|---|
Width | The width of the image. |
Height | The height of the image. |
Bits Per Pixel | The number of bits that represent each pixel. The value of this property depends on the Color Format of the image. |
Transparent Selection | True to blend the selection layer together with the main image, based on the alpha value of the selection layer; otherwise, False. This item is only available for images that support alpha. |
Format | The color format of the image. You can specify a variety of color formats, depending on the image format. The color format defines the number and kind of color channels that are included in the image, and also the size and encoding of various channels. |
Mip Level | The active MIP level. This item is only available for textures that have MIP levels. |
Mip Level Count | The total number of MIP levels in the image. This item is only available for textures that have MIP levels. |
Frame Count | The total number of frames in the image. This item is only available for images that support texture arrays. |
Frame | The current frame. Only the first frame can be viewed; all other frames are lost when the image is saved. |
Depth Slice Count | The total number of depth slices in the image. This item is only available for images that support volume textures. |
Depth Slice | The current depth slice. Only the first slice can be viewed; all other slices are lost when you save the image. |
Note
Because the Rotate by property applies to all tools and selected regions, it always appears at the bottom of the Properties window together with other tool properties. Rotate by is always displayed because the whole image is implicitly selected when there is no other selection or active tool. For more information about the Rotate by property, see [Tool properties](#tool -properties).
Resize images
There are two ways to resize an image. In both cases, the Image Editor uses bilinear interpolation to resample the image.
- In the Properties window, specify new values for the Width and Height properties.
- Select the entire image and use the border markers to resize the image.
Selected regions
Selections in the Image Editor define regions of the image that are active. Active regions are affected by tools and transformations. When there is an active selection, areas outside the selected region are not affected by most tools and transformations. If there is not an active selection, the entire image is active.
Most tools (Pencil, Brush, Airbrush, Fill, Eraser, and 2D primitives) and transformations (Rotate, Trim, Invert Colors, Flip Horizontal, and Flip Vertical) are constrained or defined by the active selection. However, some tools (Eyedropper and Text) and transformations (Generate Mips) aren't affected by any active selection. These tools always behave as if the entire image is the active selection.
While you're selecting a region, you can press and hold Shift to make a proportional (square) selection. Otherwise, the selection is not constrained.
Resize selections
After you select a region, you can resize it or its image contents by changing the size of the selection marker. While you're resizing the selected region, you can use the following modifier keys to change the behavior of the selected region as you resize it:
Ctrl - Copies the contents of the selected region before it's resized. This leaves the original image intact while the copy is resized.
Shift - Resizes the selected region in proportion to its original size.
Alt - Changes the size of the selection region. This leaves the image unmodified.
The following table describes the valid modifier key combinations:
Ctrl | Shift | Alt | Description |
---|---|---|---|
Resizes the content of the selected region. | |||
Shift | Proportionally resizes the content of the selected region. | ||
Alt | Resizes the selected region. This defines a new selection region. | ||
Shift | Alt | Proportionally resizes the selected region. This defines a new selection region. | |
Ctrl | Copies and then resizes the content of the selected region. | ||
Ctrl | Shift | Copies and then proportionally resizes the content of the selected region. |
Tool properties
While a tool is selected, you can use the Properties window to specify details about how it affects the image. For example, you can set the thickness of the Pencil tool or the color of the Brush tool.
You can set both a foreground color and a background color. Both support an alpha channel to provide user-defined opacity. The settings apply to all tools. If you use a mouse, the left mouse button corresponds to the foreground color, and the right mouse button corresponds to the background color.
The following table describes tool properties:
Tool | Properties |
---|---|
All tools and selections | Rotate by Defines the amount, in degrees, that the selection or tool effect is rotated in the clockwise direction. |
Pencil, Brush, Airbrush, Eraser | Thickness Defines the size of the area that is affected by the tool. |
Text | Anti-alias Draws text that has anti-aliased edges. This gives text a smoother appearance. Value The text to be drawn. Font The font used to draw the text. Size The size of the text. Bold Makes the font bold. Italics Makes the font italic. Underlined Makes the font underlined. |
2D Primitive | Anti-alias Draws primitives that have anti-aliased edges. This gives them a smoother appearance. Thickness Defines the thickness of the line that forms the boundary of the primitive. Radius X (Rounded rectangle only) Defines the rounding radius for the top and bottom edges of the primitive. Radius Y (Rounded rectangle only) Defines the rounding radius for the left and right edges of the primitive. |
Pencil, Brush, Airbrush, 2D Primitive | Channels Enables or disables specific color channels for viewing and drawing. If View is set for a specific color channel, that channel is visible in the image; otherwise, it is not visible. If Draw is set for a specific color channel, that channel is affected by drawing operations; otherwise, it is not. |
Wand Selection, Fill | Tolerance Defines the maximum difference between adjacent colors within which they are considered similar, so that fewer or more similar colors are made a part of the affected or selected region. By default, the value is 32, which means that adjacent pixels within 32 shades (lighter or darker) of the original color are considered to be part of the region. |
Keyboard shortcuts
Command | Keyboard shortcuts |
---|---|
Switch to Select mode | S |
Switch to Zoom mode | Z |
Switch to Pan mode | K |
Select all | Ctrl+A |
Delete the current selection | Delete |
Cancel the current selection | Esc (escape) |
Zoom in | Ctrl+Mouse wheel forward Ctrl+PageUp Plus Sign (+) |
Zoom out | Ctrl-Mouse wheel backward Ctrl-PageDown Minus Sign (-) |
Pan the image up | Mouse wheel backward PageDown |
Pan the image down | Mouse wheel forward PageUp |
Pan the image left | Shift+Mouse wheel backward Mouse wheel left Shift+PageDown |
Pan the image right | Shift+Mouse wheel forward Mouse wheel right Shift+PageUp |
Zoom to actual size | Ctrl+0 (zero) |
Fit image to window | Ctrl+G, Ctrl+F |
Fit image to window width | Ctrl+G, Ctrl+I |
Toggle grid | Ctrl+G, Ctrl+G |
Crop image to current selection | Ctrl+G, Ctrl+C |
View next (higher detail) MIP level | Ctrl+G, Ctrl+6 |
View previous (lower detail) MIP level | Ctrl+G, Ctrl+7 |
Toggle red color channel | Ctrl+G, Ctrl+1 |
Toggle green color channel | Ctrl+G, Ctrl+2 |
Toggle blue color channel | Ctrl+G, Ctrl+3 |
Toggle alpha (transparency) channel | Ctrl+G, Ctrl+4 |
Toggle alpha checkerboard pattern | Ctrl+G, Ctrl+B |
Switch to irregular selection tool | L |
Switch to wand selection tool | M |
Switch to pencil tool | P |
Switch to brush tool | B |
Switch to fill tool | F |
Switch to eraser tool | E |
Switch to text tool | T |
Switch to color-select (eyedropper) tool | I |
Move the active selection, and its contents. | Arrow keys. |
Resize the active selection, and its contents. | Ctrl+Arrow keys |
Move the active selection, but not its contents. | Shift+Arrow keys |
Resize the active selection, but not its contents. | Shift+Ctrl+Arrow keys |
Commit the current layer | Return |
Decrease tool thickness | [ |
Increase tool thickness | ] |
Related topics
Title | Description |
---|---|
Working with 3D assets for games and apps | Provides an overview of the tools that you can use in Visual Studio to work with graphics assets such as textures and images, 3D models, and shader effects. |
Model editor | Describes how to use the Visual Studio Model Editor to work with 3D models. |
Shader designer | Describes how to use the Visual Studio Shader Designer to work with shaders. |
Layers Basics
Overview Layers are what make most image editors so powerful. Images are stacked on top of each other in the layers list. You see a flattened version of the layers in the canvas. If you take the text tool and write something on your image, you will notice that a new layer called a shape layer has been created. By using the move tool, you can move around this layer without affecting the layer underneath. Similarly, if you apply a filter it will only apply to the layer you currently have selected in the layers list. Using this properly will give you the best possible results, and will also allow you to be more flexible if you want to change something later. When in doubt, make a new layer. Hiding and Renaming Layers Layers can be hidden and renamed in the layers list. From left to right you can see a visibility mark (the eye), picture of the layer, and the title of the layer. Toggling the little eye next to the thumbnail layer will hide and display the layer, leaving all the other layers visible. Layer names can be changed at any time by selecting the layer then clicking on the existing text. Pro Tip: To hide all other layers, select the layer you want to remain visible then hold down the option key while clicking the eye. To return all the layers to visibility hold down the option key while clicking the eye again. |
Blending Modes and Opacity
Above the layers list there are layer blending options as well as the opacity slider. Opacity is the opposite of transparency. If you pull the slider all the way to the left, it will be 0% opaque and you will not be able to see the layer. If you pull it all the way to the right, the opacity will be 100% and you can see the layer at its fullest.
Layer blending modes can be difficult to understand. They control the way the layer that you have selected interacts with the layers below it. Multiply for example will make all the whites of the image transparent, but leave the blacks alone. Screen does the opposite of multiply by leaving the whites alone, but making all the blacks transparent. The best way to figure out what they do is to play with them or read the blending modes tutorial.
Adding, Deleting, Selecting, and Duplicating Layers Adding & Deleting: Navigate to the Layer.. menu item and you will find options to create a new layer (⇧⌘N), a new shape layer , and to delete the currently selected layer (^⌘-). An additional keyboard shortcut to delete the currently selected layer is ⌘⌫. You can also right click (or control click) on your layers list to bring up a contextual menu with the options to create and delete layers. Below the layers list, there is a plus button. The plus button will create a new bitmap layer. On the bottom righthand corner there is a garbage can. Clicking this will delete the currently selected layer. Selecting: To select a single layer in the layers list, just click on it. To select multiple layers you can hold down the command key while clicking on each layer you want selected. To select a range of layers, click on the first layer you want selected then hold down the shift key while clicking on the last layer you want selected. Duplicating: To duplicate a layer, select that layer in the layers list. You can then right click on the layers list to bring up the contextual menu, or you can choose Layer▸ Duplicate Layer from the menu. An additional method is to hold down the option key while clicking the '+' button in the inspector palette. |
Grouping Layers You can group layers together by creating a group layer in your layer list. A group layer works just like a folder. You can create a group by right-clicking inside your layers list to bring up the contextual menu, or you can choose the Layer▸ New Group Layer menu item. An additional method is to hold down the command key while pressing the '+' button in the inspector palette. If you have multiple layers selected and want to put them in a group, you can use keyboard shortcut command-g. If you have a group layer selected and would like to ungroup it, then use keyboard shortcut command-shift-g. A folder icon will appear in your layers list. You can now drag your layers into this group layer. Notice there is an disclosure triangle next to the visibility icon. Clicking on this triangle will show or hide all the layers within this group. You can rename the group folder by double-clicking the name and entering your own. Grouping layers is also a good way to move multiple layers at once. Pro tip: If you have a group layer selected and you use the Edit ▸ Copy menu item, you will get a composite of the entire group layer on the clipboard. |
Locking Layers Locking layers is useful if you have an object on a layer that you do not wish to move. Locking the layer it rests upon will prevent you from making unwanted changes. To lock a layer, right click on the layer you wish to lock. Then select 'Lock Layer' from the menu. This is also available under Layer▸ Lock Layer. You will notice that a small lock icon appears in the right side of the layer. Use the same process to unlock the layer. |
Merging Layers
Layers can be merged in a few different ways. Layer▸ Merge Down allows you to combine layers one at a time with the currently selected layer being merged with the one below it. Layer▸ Merge Visible merges all layers that are not hidden into one single layer. Layer▸ Flatten Image merges all layers regardless of visibility. Merging layers can be a good way of keeping your work clean and organized, but it also decreases your ability to change things later on. Consider using Edit▸ Copy Mergedand making a new image from the clipboard so that your layers can be preserved in the original file. Layer ▸ Stamp Visible (⌘⌥⇧E) will add a new layer, which is a composite of all the visible layers. The menu item for Merge Visible will switch to Stamp Visible when the option key is pressed.
Bitmap and Shape Layers Defined
In Acorn, there are two different kinds of layers that can be created. One is a bitmap layer and the other is a shape layer. Bitmap layers can be image files, pictures that you bring in from iPhoto, or things that you draw. In their simplest form they are a grid of pixels on the screen. Shape layers are more like a set of mathematical instructions rather than pixels. You can go back at any time in a shape layer and change the font, the colors, or the size easily.
Shape layers cannot be drawn on with the brush or erased using the eraser tool. Shape layers cannot be transformed using the transform tools. For example, if you want your shape to have a perspective transform applied, you would need to 'rasterize' the layer. Rasterization is the process of turning a shape layer into a bitmap layer. Once a shape layer has been rasterized you lose the editing capability you have with shapes, but the bitmap tools become available to you. If your layer name originally started with 'Shape Layer', Acorn will replace it with 'Bitmap Layer' when you rasterize.
Important Word of Warning
JPEG, the format that most images are stored in, cannot have layers. Saving out to a JPEG will flatten all of the layers into one. If you would like to save your layers so you can come back later and do more edits, save as the file format .acorn.
If you are curious about the project file used in this example, you can download it here: http://flyingmeat.com/fs/images/acorn/LayersDemo.zip.
Additional Relevant Documentation
Layers Basics Part 1 (video tutorial)
Layers Basics Part 2 (video tutorial)