Jump to content

  • Log In with Google      Sign In   
  • Create Account


[java] lots of downloaded data


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
3 replies to this topic

#1 dr-m   Members   -  Reputation: 122

Like
Likes
Like

Posted 03 January 2001 - 06:58 AM

I have this applet that loads a few images, and then processes a few of them. The loading is done one and one with a waitForID(n) between every file. But when I start the processing, more data is downloaded each time i go over my loop (it cuts out a tile from a Image to an int[]). The only time I notice this effect is when launching over a modem connection. But loading time is increased from <2 seconds to over 8 minutes! The data downloaded is about 5 times the expected. Does java request the whole tileset each time i reference it or what? It almost looks that way to me. / dr-m

Sponsor:

#2 Jim_Ross   Members   -  Reputation: 122

Like
Likes
Like

Posted 03 January 2001 - 07:51 AM

depends on how you''re "requesting" the image. Sounds like there''s a problem with your code, could you post some of it?

#3 tunabox   Members   -  Reputation: 122

Like
Likes
Like

Posted 03 January 2001 - 03:59 PM

What is the size of your images?

#4 dr-m   Members   -  Reputation: 122

Like
Likes
Like

Posted 03 January 2001 - 09:00 PM


Ok, here are the ciritcal parts of my code... I noticed something just after posting the msg last night, this bug *only* exists in IE5 (the exact version currently unknown)! When launching in NS4.75, this loop was not an issue, it just flew by it. I didn''t try it with appletviewer or NS6 but I''m gonna do that later today.

Im using this technique on some other gfx as well, and it causes the same hangup and unneeded data transfers. With the appletviewer I sometimes experience strange hangups while grabbing. It complains about "Premature end of JPEG-file" from time to time. Or it just hangs without any message at all.

My fullsource image is 480x384 (not all used yet) and tiles are 24x24. It''s stored as an 16,6kB JPEG image.



  
//===================== Mediatracker loading loop ========================

// this stuff seem to work just fine.


currentItem = 0;

for (int i=0; i<totalItem; i++)
{
url = new URL(getCodeBase(), "data/" + RN.fullImageList[i]);
imgBank[i] = getImage(url);
tracker.addImage(imgBank[i], i);
tracker.waitForID(i);

currentItem++;
}

// ....


loadTilesFromImage(imgBank[RN.IMG_TILESJUNGLE]);

// ....




//===================== loop grabbing my tiles ===========================

// this loop executes horribly slow on my 28k8 modem.


private void loadTilesFromImage(Image imgTiles)
{
int i,j,s;
Rect tile = new Rect();

for (s=0, i=0; i<3; i++) {
for (j=0; j<20; j++, s++) {
tile.setRect(j*tileSide,
i*tileSide,
j*tileSide+tileSide,
i*tileSide+tileSide);

tileBuf[s] = new Tile(s, tile, imgTiles);
}
}
}


//==================== constructor in Tile class =========================

// each tile is stored as an Int[]


public Tile(int i, Rect srcRect, Image srcImage)
{
no = Tile.INVALID;
tile = new int[srcRect.getWidth() * srcRect.getHeight()];
PixelGrabber pg = new PixelGrabber(srcImage,
srcRect.getTopX(), srcRect.getTopY(),
srcRect.getWidth(), srcRect.getHeight(),
tile, 0, 24);
try {
pg.grabPixels();
}
catch(Exception e) {
return;
}
no = i;
tileInfo = srcRect;
}



/ dr-m




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS