Hi !
Featured games (91)
games approved by the League of Dukes
Games in Showcase (757)
Games in Android Showcase (229)
games submitted by our members
Games in WIP (844)
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  
  Generating Image  (Read 2040 times)
0 Members and 1 Guest are viewing this topic.
Offline Del-ONE

Senior Newbie

« Posted 2009-01-28 05:19:54 »

Hi all,

I'm looking for an easy way to generate an image by getting a clip from a different one, as with say a sprite sheet or a bitmap font.  Using separate files has been alright (albeit annoying and wasteful) for sprites, but I'm not having 24 pics for every font & size combination I want to use.

Anyways my ingenious plan was:
1. Load BufferedImage
2. getGraphics() and clip
3. ...
4. Profit!!!

Unfortunately, I can't seem to find anything obvious to throw into 3.  After hunting through Rasters and such for hours with no apparent success (I don't doubt I missed something though), I thought it would probably be better to bug someone for a few minutes of their time rather than pull my hair out/toss the laptop out the window/etc.


P.S. Please don't say drawString(); I'm not that retarded. I'm using LWJGL and for unknown reasons the NeHe tutorial code and the Slick utility class don't like me  =( , lol (by which of course I mean I'm screwing stuff up and am too unfamiliar to deal with it).

P.P.S. Ok, last question. Even though I'm not using Java2D anymore, I've alway been curious if clipping the graphics context created a speed boost (say if I were drawing 500 images outside of the clip).
Offline Markus_Persson

JGO Wizard

Medals: 19
Projects: 19

Mojang Specifications

« Reply #1 - Posted 2009-01-28 12:58:45 »

Something like this, perhaps?

BufferedImage sheet = loadSheet();
for (int x=0; x<xCount; x++)
  for (int y=0; y<yCount; y++)
      BufferedImage clippedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
      Graphics g = clippedImage.getGraphics();
      g.drawImage(sheet, -x*width, -y*height);
      storeClippedImageSomehow(clippedImage, x, y);

Play Minecraft!
Offline cylab

JGO Kernel

Medals: 180

« Reply #2 - Posted 2009-01-28 13:16:28 »

doesn't BufferedImage.getSubimage() do what you want?

Mathias - I Know What [you] Did Last Summer!
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Del-ONE

Senior Newbie

« Reply #3 - Posted 2009-01-28 16:52:33 »

@ Markus_Persson
Oh, that's a great idea!  I was trying to go at it backwards (trying to clip the sheet, move what i clipped to [0,0], and then draw) so I completely didn't see that I could draw the entire sheet to the new image in such a way that the new image would clip it to what I wanted.  I gotta start learning to see a problem from different angles at once; I've had that kind of problem before.  However...

@ cylab
 Shocked Shocked Shocked  Where did that come from?!?!? lol, I swear I scrolled through the BufferedImage documentation specifically looking for methods that return BufferedImage and didn't see one.  I guess I missed it  Undecided.  Argh, that was a complete waste people's time then.

Thanks guys, although I feel retarded that I didn't come up with either of those on my own....
Offline Markus_Persson

JGO Wizard

Medals: 19
Projects: 19

Mojang Specifications

« Reply #4 - Posted 2009-01-29 08:16:12 »

Yeah, that's probably a much better alternative.

I keep forgetting getSubImage exists. Heh.

Play Minecraft!
Offline Riven

« JGO Overlord »

Medals: 1340
Projects: 4
Exp: 16 years

Hand over your head.

« Reply #5 - Posted 2009-01-29 20:00:39 »

One thing you got to watch out for is that the returned image shares its data with it's parent. So you can't create 4 sub images of the same region and draw different stuff on each. You'll end up with 4 equal (messed up) sub images.

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social rankings!
Pages: [1]
  ignore  |  Print  

EgonOlsen (76 views)
2018-06-10 19:43:48

EgonOlsen (56 views)
2018-06-10 19:43:44

EgonOlsen (76 views)
2018-06-10 19:43:20

DesertCoockie (258 views)
2018-05-13 18:23:11

nelsongames (156 views)
2018-04-24 18:15:36

nelsongames (155 views)
2018-04-24 18:14:32

ivj94 (896 views)
2018-03-24 14:47:39

ivj94 (160 views)
2018-03-24 14:46:31

ivj94 (809 views)
2018-03-24 14:43:53

Solater (173 views)
2018-03-17 05:04:08
Java Gaming Resources
by philfrei
2017-12-05 19:38:37

Java Gaming Resources
by philfrei
2017-12-05 19:37:39

Java Gaming Resources
by philfrei
2017-12-05 19:36:10

Java Gaming Resources
by philfrei
2017-12-05 19:33:10

List of Learning Resources
by elect
2017-03-13 14:05:44

List of Learning Resources
by elect
2017-03-13 14:04:45

SF/X Libraries
by philfrei
2017-03-02 08:45:19

SF/X Libraries
by philfrei
2017-03-02 08:44:05 is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑
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!