Skip to content

An hxperimental (cross-target/cross-lib) Pixels abstract, in Haxe 3.1+

License

Notifications You must be signed in to change notification settings

azrafe7/hxPixels

Repository files navigation

hxPixels

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+

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published