From a1cd6efb60055ffd35047a35677d02b8c578bdb8 Mon Sep 17 00:00:00 2001 From: Michael Miller Date: Sat, 23 Apr 2016 17:22:48 -0700 Subject: [PATCH] ` --- Raster-Image-Support.md | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/Raster-Image-Support.md b/Raster-Image-Support.md index ef293c1..179325c 100644 --- a/Raster-Image-Support.md +++ b/Raster-Image-Support.md @@ -1,22 +1,15 @@ -(under construction) +There are three objects exposed that help manage images. They each provide a solution to managing and rendering image data onto the strip. Their internal memory storage matches the pixel layout of the NeoPixelBus which provides a fast rendering. -Currently there are two primary objects exposed that help manage images. They each provide a solution to managing and rendering image data onto the strip. They both require a template 'Method' class that defines where and how the memory is managed. Their internal memory storage matches the pixel layout of the NeoPixelBus which provides a fast rendering. - -## [NeoBuffer object](https://github.com/Makuna/NeoPixelBus/wiki/NeoBuffer-object) +### [NeoBuffer object](https://github.com/Makuna/NeoPixelBus/wiki/NeoBuffer-object) The NeoBuffer is basic image storage object. It can store the image data in RAM or reference image data stored in PROGMEM. It provides direct x,y access to set and get pixels along with a render method `Blt()` that will copy bits to the NeoPixelBus or other Raster objects. -## [NeoVerticalSpriteSheet object](https://github.com/Makuna/NeoPixelBus/wiki/NeoVerticalSpriteSheet-object) -The NeoVerticalSpriteSheet is used to abstract that the image actually contains a series of sprites of the same size. It can store the image data in RAM or reference image data stored in PROGMEM. It provides direct sprite,x,y access to set and get pixels along with a render method `Blt()` that will copy a sprite to the NeoPixelBus or other Raster objects. +### [NeoVerticalSpriteSheet object](https://github.com/Makuna/NeoPixelBus/wiki/NeoVerticalSpriteSheet-object) +The NeoVerticalSpriteSheet is used to abstract that the image actually contains a series of sprites of the same size. It can store the image data in RAM or reference image data stored in PROGMEM. It provides direct sprite,x,y access to set and get pixels along with a render method `Blt()` that will copy a sprite to the NeoPixelBus or other Raster objects. + +### [NeoBitmapFile](https://github.com/Makuna/NeoPixelBus/wiki/NeoBitmapFile-object) +The NeoBitmapFile is used to "stream" parts of a bmp file to a target. It does not store image data in memory. It provides direct x,y access to get pixels along with a render method `Blt()` that will copy the image bits to the NeoPixelBus or other Raster objects. -## NeoBufferMethod objects -There are two template "Method" objects that used in the construction of the NeoBuffer and NeoVerticalSpriteSheet that define where the data for the image is stored. There is no need to call these objects directly and they should just be used to construct the two raster objects. - -### NeoBufferMethod -This method object will define the raster object so that it uses RAM to store the image. - -### NeoBufferProgmemMethod -This method object will define the raster object so that it uses PROGMEM to store the image. ## Image Plug In To create the PROGMEM data structure that contains your image, you can use the [free Paint.Net](http://www.getpaint.net/download.html) program with the [Arduino NeoPixel Sketch Exporter Paint.Net plugin](http://forums.getpaint.net/index.php?/topic/107921-arduino-neopixel-sketch-exporter/?p=515063). These tools will export your images into a .h file. An example image and files are present with the NeoPixelBufferCylon example.