pxon ie. "pixel art object notation"
abstract
PXON (pronounced like "picks on" as in "I hate it that Jenn always 'picks on' me."1) is a proposed standard, which no one needs or even asked for, of the representation of pixel art using JSON and properties of the Exif RDF schema. It provides the means for both lightweight data-interchange and the object-oriented creation of pixel art.
structure
It's just JSON. But there are two objects, exif
and pxif
. exif
has any properties defined by the Exif RDF schema (mention and link in the abstract). For the sake of creating pixel art, many of these properties are not necessary or even applicable. They have been narrowed down to:
software
: (string) the software used to create/export the pxonartist
: (string) the identity of the artist of the work the pxon representsimageDescription
: (string) a description of the imageuserComment
: (string) a comment from the user generating the pxoncopyright
: (string) the copyright of the imagedateTime
: (string) the date/Time the pxon was initially generated
pxif
is the pixel art spin of exif
, in essense it is unique to pixel art and breaks down the image beyond its typical metadata and focuses on the individual strokes and drawings of the pixels within the image. The first property, pixels
is an array of "pixel" objects representing the pixels drawn in the image. Because it is a new idea in this format, the list of properties is fluid and ever changing at the moment. They are currently:
x
- (integer) the x coordinate position of the pixely
- (integer) the y coordinate position of the pixelcolor
- (string) the color of the pixel
There used to be a size
property which I have removed as canon to pxif objects. I typically manually add that and other properties, but it is no longer and should not be required to represent a pixel - which ultimately is the smallest unit of measurement after all!
{
"exif": {
"software" : "",
"artist" : "",
"imageDescription" : "",
"userComment" : "",
"copyright" : "",
"dateTime" : ""
},
"pxif": {
"pixels" : [
{
"x" : 0,
"y" : 0,
"color" : "",
}
]
}
}
example
{
"exif": {
"software": "http://pxonloop.glitch.me",
"artist": "jenn schiffer",
"imageDescription": "smile",
"userComment": "an example pixel drawing to show off pxon",
"copyright": "jenn schiffer 2018",
"dateTime": "2015-09-17T15:21:51.761Z"
},
"pxif": {
"pixels": [
{
"x": 75,
"y": 69,
"color": "rgba(0, 0, 0, 1)",
"size": 15
},
{
"x": 80,
"y": 84,
"color": "rgba(0, 0, 0, 1)",
},
{
"x": 96,
"y": 82,
"color": "rgba(0, 0, 0, 1)",
},
{
"x": 110,
"y": 83,
"color": "rgba(0, 0, 0, 1)",
},
{
"x": 129,
"y": 72,
"color": "rgba(0, 0, 0, 1)",
},
{
"x": 88,
"y": 40,
"color": "rgba(0, 0, 0, 1)",
},
{
"x": 112,
"y": 38,
"color": "rgba(0, 0, 0, 1)",
},
{
"x": 97,
"y": 57,
"color": "rgba(0, 0, 0, 1)",
}
]
}
}
apps using pxon
- pxonloop.glitch.me - a pxon playground
- make8bitart.com - pixel art painting app
- image-to-pxon.glitch.me - app that converts image to pxon
changelog
- v. 0.2.0 remove size and dataurl as canonical properties
- v. 0.1.0 change pxif properties xPos and yPos to x and y
- v. 0.0.1 initial draft
citation and credits
- [1] quote by Adam J. Sontag