Java-Gaming.org
Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
Featured games (78)
games approved by the League of Dukes
Games in Showcase (408)
games submitted by our members
Games in WIP (293)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  expected image data  (Read 855 times)
0 Members and 1 Guest are viewing this topic.
Offline bedelf

Junior Member




Are you suggesting coconuts migrate?


« Posted 2003-01-31 11:04:19 »

What I want to do right now is load an image file, probably PNG, and rip the pixel/indice and colormodel out, and convert them if needed. But I'm not totally sure on what I may be getting sometimes..

Let's say I load an image, could be gif/png/whatever the normal way using Toolkit, then use PixelGrabber to get the ColorModel and instanceof says getColorModel() is IndexColorModel, am I guaranteed getPixels() returns a simple array of bytes that are just the indices to the color map? i.e. array of 0-255 values.

Also, say it's a DirectColorModel, I pretty much want the array of pixels and DirectColorModel to match ColorModel.getRGBDefault(), is there a way to check with certainty that things are as I need them or should I just convert it no matter what?

I pretty much want a class that maintains a memory image source, argb pixel or palettized indice array, an array of IndexColorModel's to change out the palette if were using a palettized image, and of course, the image created with the MemoryImageSource. I need access the valid pixel or indice info, as well as the image to draw, so i can update it etc..

anyways, the question is, what's the best way to ensure the data is loaded and conforms both ways? i.e. Palettized images have a byte array of indices 0-255 and otherwise a DefaultColorModel with int[] pixels 0xAARRGGBB.

meh. :/ I hope that made sense to someone.
Offline Abuse

JGO Coder


Medals: 2


falling into the abyss of reality


« Reply #1 - Posted 2003-01-31 21:50:23 »

I know exactly what your asking - but I don't know the answer either Tongue

if some1 does - you'd be killing 2 birds with 1 stone if u told us Cheesy

Make Elite IV:Dangerous happen! Pledge your backing at KICKSTARTER here!
Offline bedelf

Junior Member




Are you suggesting coconuts migrate?


« Reply #2 - Posted 2003-02-07 22:05:06 »

For anyone who cares:

Right now I'm using PixelGrabber to take 1 pixel using the first constructor specifying not to force default RGB.

If the color model of that pixel is DirectColorModel you can create a new pixel grabber and pass it true so it rips any pixel data using default RGB. Specified by ColorModel.getRGBDefault(). so basically if your image is truecolor, you've just the ripped the pixels and made it conform, getPixels() will return your pixel array just how you want it.

If the color model is IndexColorModel, it seems like the Object returned from getPixels() is always of type byte[], one byte per indice. this may or may not be true, but I did a bunch of testing.

I hadn't dealt with much byte stuff in the past (almost none) so this confused me at first cause I was thinking a byte could only hold values from 0-127. Which is true sorta, you can do byte b = (byte) 255 and the true value will be something like -1 i think, 0 to 127 and then -128 to -1, java does the conversion i guess. ;p So poop on me for not paying attention t my books a long time ago.

and thats that pretty much. Doesn't seem complicated now but at the time I was a little confused. Hope this helps someone.
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
 
Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars and Titan!

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

The invasion has landed! On Mars! And you're there to beat 'em!
cubemaster21 (119 views)
2013-05-17 21:29:12

alaslipknot (126 views)
2013-05-16 21:24:48

gouessej (157 views)
2013-05-16 00:53:38

gouessej (147 views)
2013-05-16 00:17:58

theagentd (162 views)
2013-05-15 15:01:13

theagentd (147 views)
2013-05-15 15:00:54

StreetDoggy (191 views)
2013-05-14 15:56:26

kutucuk (215 views)
2013-05-12 17:10:36

kutucuk (214 views)
2013-05-12 15:36:09

UnluckyDevil (217 views)
2013-05-12 05:09:57
Complex number cookbook
by Roquen
2013-04-24 12:47:31

2D Dynamic Lighting
by Oskuro
2013-04-17 16:46:12

2D Dynamic Lighting
by Oskuro
2013-04-17 16:45:57

2D Dynamic Lighting
by Oskuro
2013-04-17 16:23:20

Noise (bandpassed white)
by Roquen
2013-04-05 17:36:01

Noise (bandpassed white)
by Roquen
2013-04-03 16:17:38

Java Data structures
by Roquen
2013-03-29 13:21:12

Topic Request
by kutucuk
2013-03-22 21:42:01
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!
Page created in 0.067 seconds with 20 queries.