Jump to content

  • Log In with Google      Sign In   
  • Create Account


[java] Fast graphics operations in Java ?


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
4 replies to this topic

#1 Lamtd   Members   -  Reputation: 122

Like
Likes
Like

Posted 02 July 2000 - 03:54 PM

Hi, I recently moved to Java for my job, and I had to write a component that would perform various graphics operations such as stretching/rotating/blending a bitmap. I use a proprietary interface, that features a component similar to the AWT Image component, so I can directly access the pixel datas from the bitmap (in ARGB format). My problem is that when I ported some code I''ve written before in VB, C and Asm, I had a *much* slower result, something easily like 20 times slower. I know that Java being (in my case) just interpreted code, it might be slower than other languages, but still, I''ve seen some amazing demos in Javas (such as Lucid Dream) running at a decent speed (with 3D, alpha-blending, and some other cool FXs) Maybe accessing the pixels directly isn''t the way to go, but I can''t think of anything better; What else could I try to optimize my code ? I''m supposed to work in true-color mode (no 16-bits color model), have to stick with Java 1.1, can''t use native-code compilation, and don''t know what other primitive type to use to hold a 8 bits value instead of int (does the use of short really increases speed ?). Please help !!! ~Lamtd

Sponsor:

#2 Jim_Ross   Members   -  Reputation: 122

Like
Likes
Like

Posted 03 July 2000 - 04:03 AM

I think using shorts is slower than ints. Why not use the pure java code to work with the pixel data. The other component might be slowing everything down. You might try using jdk1.3 also. If you need 1.1 for compatibility you might have to tell your boss that you just can't achieve the expected speeds. The only thing that will break if you use 1.3 stuff are macs and i don't have any luck with macs using 1.1 anyways.

Using AWT for graphics manipulation is a bad idea. The 2D API and Advanced Imaging API were specfically desinged for 2D image manipulation.

java 2D api
http://java.sun.com/products/java-media/2D/index.html

java advanced imaging api
http://java.sun.com/products/java-media/jai/index.html


Edited by - Jim_Ross on July 3, 2000 2:48:56 PM

#3 ARCHIGAMER   Members   -  Reputation: 122

Like
Likes
Like

Posted 03 July 2000 - 05:04 AM

If it''s going to be running a web browser then you don''t have to worry to much because if the user doesn''t have the Java 2 plug-in it prompts them to download it like the Macromedia Flash plug-in. I believe IE/Netscape prompt them I dont know about other browser.

#4 SteveMeister   Members   -  Reputation: 122

Like
Likes
Like

Posted 05 July 2000 - 03:45 AM

Depending on your platform, the Java2D api is also optimized and will take advantage of graphics hardware. On Windows machines, Java2D is actually pretty fast, and has many of the types of filters you might want to use.

#5 ManaSink   Members   -  Reputation: 122

Like
Likes
Like

Posted 10 July 2000 - 01:15 AM

Hmm.

32 bit true color.
Alpha blending.
Fast
Java1.1

Chances are you can get any three of these things, but all four is a touch unrealistic. If you have to code to a spec, try and see what can be relaxed. Looks like concensus is try and relax the Java1.1 support and use the plugin or distribute a 1.2 JRE. Changing from an int to a short probably won''t buy you much, especially since performance of each depends on the VM implementation, and many may have just stuffed shorts into the int impl.

ManaSink





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