You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
An hxperimental (cross-target/cross-lib) Pixels abstract, in Haxe 3.1+
Simple interface to access/manipulate pixel values among different targets and libs, having a way to get/set individual pixels (or bytes), and be able to apply them back to the original source (taking care of framework-specific details under the hood).
API
For the supported libs the following methods are implemented (note that all color values are in ARGB format):
get/setPixel32(): get/set pixel value (with alpha) at x,y
get/setPixel(): get/set pixel value (without alpha) at x,y
get/setByte(): get/set byte value at i
clone(): make a duplicate of the Pixels instance
fillRect(): fill a rect area with pixel value (with alpha)
convertTo(): convert to specified PixelFormat
bytes: access to the raw underlying bytes (in source-specific format)
format: change internal color mapping
Supported classes/libs
BitmapData: flash, openfl and nme (and flambe flash)
Texture: flambe (applyToFlambeTexture() only for html - not flash -, due to limitations imposed by Stage3d)
BufferedImage: java
ImageData: plain js
Texture and AssetImage: snow/luxe
png, bmp and gif: format lib
Implementation
Pixels is an abstract over haxe.io.Bytes. It stores the raw bytes in the underlying bytes var (in source-specific color format), providing an ARGB API over them.
Usage
See the src folder for examples on how to use it, and please file an issue if you have problems or spot a bug.
Warning
The code abstracting bitmaps from the above-mentioned libs is strictly coupled with their internal implementations, so it can easily break when they update.
It may still be useful to work with pixels on a generic bitmap structure.
License (MIT)
See LICENSE file.
About
An hxperimental (cross-target/cross-lib) Pixels abstract, in Haxe 3.1+