Help understanding how to display a raster image

Hi.
I apologise in advance if this question sounds a bit convoluted but I've got a bit confused as to how to go about this.
I have an Ascii-grid file that's been exported from ArcMap and I want to draw it onto a JPanel.
This particular grid is a DEM but it would be good if it could produce this for any grid, if it makes any difference.
The problem is I don't really even know where to start...I've looked at using colormodels, data buffers etc for creating a raster but I'm not really sure how to get the ascii data I have into any of these.
Do I remove the pixel data from the integer values in the file before etc and if so how do I go about this?
In addition is it possible to make a colormodel from a standard int array, if it was created in a particular pattern for example for designated height values.
Some help in working out how to go about this would be very welcome as I'm lost as to what to do. Even just some pointers in the right direction. I'm more than happy to go and work it out I just don't really know where to start.
Cheers.

Sounds something like a contour map. I'm sure there must be a technically superior (read: horribly complicated) way to do this using IndexColorModel, WriteableRaster etc etc but if the performance is satisfactory I would go with a simple BufferedImage and setRGB.import java.awt.Color;
import java.awt.image.BufferedImage;
import javax.swing.*;
public class ContourMap {
  private int[] colors = {
    Color.BLACK.getRGB(),
    Color.GREEN.getRGB(),
    Color.YELLOW.getRGB(),
    Color.RED.getRGB()
  public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {
      @Override
      public void run() {
        new ContourMap().makeUI();
  public void makeUI() {
    String[] strData = {
      "000000000000000",
      "000000111000000",
      "000111221110000",
      "001112222111000",
      "001122332211000",
      "001112222111000",
      "000111221110000",
      "000000111000000",
      "000000000000000"
    BufferedImage image = new BufferedImage(strData.length, strData[0].length(),
            BufferedImage.TYPE_INT_ARGB);
    for (int i = 0; i < strData.length; i++) {
      for (int j = 0; j < strData[0].length(); j++) {
        image.setRGB(i, j, colors[strData.charAt(j) - '0']);
System.out.println();
JLabel label = new JLabel(new ImageIcon(image), JLabel.CENTER);
JFrame frame = new JFrame();
frame.add(label);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 200);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
db
edit And oh, the data is in a hardcoded String array only because I couldn't be bothered adding all the commas to make it a int[][] after copying from your post
Edited by: Darryl Burke

Similar Messages

  • How to display multiple thumbnail images in jframe

    hi
    please help me about how to display multiple thumbnail images in jframe

    Multi post:
    http://forum.java.sun.com/thread.jspa?threadID=627253&messageID=3588990

  • How to display every other images in image indicator

    Hi All,
    I am using IMAQ to grab and save high freq and high resolution images. I have an image indicator directly from "Image Grab Acquire". So, the image indicator is displaying every single images at a very high frequency too. We have to display frames, but not necessarily every single one (enough so the operator can see what's going on). So, I am wondering how I can display, say every other images (such as all odd/even number of images), or jump over two and display the third?
    Any help will be appreciated!
    Thanks!
    Wenlong
    Solved!
    Go to Solution.

    Here are some general comments.
    Image acquisition is "a horse of a different color" -- unlike many other I/O devices, the memory that holds the data (here called the "buffer") is managed by the driver, and isn't directly available to LabVIEW.
    I'm guessing that you are using NI Video hardware, as you are using IMAQ functions (I've only used IMAQdx).  Is this true?  What camera are you using?
    The IMAQ Extract Buffer (probably) "clocks" itself to the camera (I say "probably" because I don't know the hardware you are using).  This means that the While loop containing it will run at the frame rate of the camera (hence you can easily calculate the frame rate, as your code shows).
    This looks like an NI Demo routine, so I'm guessing that you don't have a lot of experience with Vision processing.  If you've got a lot of other LabVIEW experience, you should be able to make the leap to vision, once you get the idea of how buffers work.  Unfortunately, there's not as much in the way of tutorials and white papers on Vision as on other LabVIEW topics.
    So to your question -- how to display every Nth image.  Here's the key loop (which is lifted directly from your code):
    As menioned above, this routine is "clocked" by the Extract Buffer function.  What you do to display every N'th image is to put the Image control inside something like a Case statement that "fires" every Nth time.  
    Here's an "Nth" version of the above loop (some details omitted) --
    We still drive the loop filling every buffer with a frame.  But we then use the Integer Divide function to select the Nth image (those that have a remainder of 0 when i is divided by Nth) and wire the "image" line (it doesn't really hold an image) to the "Image" control, with the other case being "Default" (so all other valeus go there) and with nothing inside.  Thus every Nth time through this loop, the output of Extract Buffer is wire to an Image (and displayed), the other N-1 times the wire goes nowhere.
    Bob Schor

  • I need help understanding how the Apple components integrate to create a system across all my devices?

    I need help understanding how the Apple components connect to create a whole system across all my devices?
    Is there a resource that describes current system and associated functionality?
    For example:
    Buy A, B, C to achieve "X" 
    You will need:
    an internet provider which supports <specs>
    add D to achieve "Y"
    You will need:
    an internet provider which supports <specs>
    add "E" to achieve "Z"
    You will need:
    an internet provider which supports <specs>
    For example, I am looking at the Gen 6 Airport extreme.  For intended performance do I need broadband? if so what are the specs, or will basic internet service suffice?  Do I need the internet provider's modem or does the Airport extreme replace that?  And then I think, if I am doing this, I should also look at Apple TV....What do I need and Why?  Then I look at the New Desk top coming out in the fall, and I think well, if I wait and get this, what does this component do for the system, and what becomes redundant? What does this awesome desktop do for my ability to sit and use a new macbook air when I travel  or sit on the couch in my PJs?
    If there was a place that plainly stated "if you buy the new dektop you can configure a system including only these components and achieve <this result> and by adding <additional components> you will achieve this result.
    I have been to the genius store a few times, but I come out of there more confused unless I have SPECIFIC questions or already know what to buy. 
    A "System Configuration App" would be a really great sales tool--Just saying.

    I have no idea what "fully optimized" means.
    No Apple device will let you watch broadcast TV. The Apple TV is a good option for watching streaming TV from iTunes, NetFlix and Hulu. If you want to watch from other sources, you may need to look at other devices.
    Any Mac computer or iPad will allow you to surf the web.
    What business software?
    Time Capsule is a good option for back ups.
    Update what across all devices?
    For accessing documents from all devices, a service like Dropbox is your best bet.
    I have no idea what "step as far away from an internet provider as possible" means. If you want Internet access, you need an Internet provider.
    Lighting fast speed for what? Processor? The specs are listed for all devices in the Online Store. Internet? We're back to the service provider.
    Technology changes. The only way to keep pace with it beyond a couple of years is to buy new stuff.
    The bottom line is you need to look at the specs for devices availble and at your budget and decide what best meets your needs. If you are unable to do that on your own, there are lot of technology consultants out there who will, for a fee, look at your exact situation, make recommendations and even handle the purchase and set up. Perhaps that would be the best route for you.
    Best of luck.

  • How to display multiple page images in forms ?

    Hi,
    What is the best method to display multiple pages image(100 pages) in forms 10g?
    Thanks

    Hello,
    <p>this is a link to a tutorial that contains several sample forms.<br> One of them (ALBUM.FMB) demonstrates how to display hundred of images.<br><br>The tutorial is in French, but you can simply download the samples on the introduction chapter</p>Francois

  • How to display multi-channel image in the 'proxy'?

    There're many examples to show how to display composite channels in the 'proxy'. But I don't find any example to show how to display multi-channel image in the 'proxy'. I found that I can use PSPixelOverlay to display alpha channel data like this:
    int nSpotChannel = gChannelCount - 4;
    PSPixelOverlay* overlay = new PSPixelOverlay[nSpotChannel];
    for(int i = 0; i < nSpotChannel; i++){
           if( i != (nSpotChannel - 1) )
                 overlay[i].next = overlay + i + 1;
           else
           overlay[i].next = NULL;
           overlay[i].data = gChannelData + (4 + i) * nPlaneBytes;
           overlay[i].rowBytes = gProxyRect.Width() * gDocDesc->depth / 8;
           overlay[i].colBytes = 1;
           overlay[i].r  = 230;
           overlay[i].g = 161;
           overlay[i].b = 174;
           overlay[i].opacity = 255;
           overlay[i].overlayAlgorithm = kStandardAlphaOverlay;
    pixels.pixelOverlays = overlay;
    Then, Seeing red part, it will trigger a new problem, that is how to get the color value of the alpha channel by plung-in itself? It seems that no channel color value info is in FilterRecord.
    If you have other solution, please tell me. Many thanks!

    This is what I've been doing - was just curious if there was a way to see a more cohesive image.
    If the individual EQ plugins are in fact the answer, is there any way to smooth how the Analyzer displays? The image I posted above, all of the tonal curves are very smooth. The analyzer tool shows a lot of peaks and valleys within the overall curve and it's hard to pinpoint each instrument's "sweet spot." Vocals for example are very hard to spot.
    - Morgan

  • Help!How can i draw an image that do not need to be displayed?

    I want to draw an image and save it as an jpeg file.
    first I have to draw all the elements in an image object.I write a class inherit from Class Component,I want to use the method CreateImage,but I get null everytime.And i cannot use the method getGraphics of this object.Thus i can not draw the image.
    when i use an applet,it runs ok.I use panel and frame,and it fails.
    How can i draw an image without using applet,because my programme will be used on the server.
    Thank you.

    you could try this to create the hidden image
    try
              GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
              GraphicsDevice gs = ge.getDefaultScreenDevice();
              GraphicsConfiguration gc = gs.getDefaultConfiguration();
              offImage = gc.createCompatibleImage(100, 100);
              offG = offImage.getGraphics();
          catch(Exception e)
              System.out.println(e.getMessage());
          }

  • How to display a binary image in a webpage?

    Hi,
    I want to display a binary image in a webage. The image has been stored in a DB as binary format. I am using servlet. How could I retrieve it and display it on a webpage? Could you give me some suggestions?
    I have read some metrial about JAI, the method 'createImageEncoder( )', which seems very helpful! I am on the right way, right? Thanks for your any comments!
    Best Regards,
    Hai

    Here is my idea to display the pic on the webpage:
    The pic is stored in DB as binary, after retrieving it, the binary data will be converted to JPEG pic. Then, the pic will be saved to the local machine automaticly. After that, I get the pic's SRC, and use html display it.
    My code is as follow (not completed), some errors in it.     public static String getPayoffSRC(Services serv, long fileId)
                                                                    throws FileNotFoundException,
                                                                  DBException,
                                                                  DbFileNotFoundException,
                                                              IOException {
            BufferedImage buffy = new BufferedImage(300, 400,
                                                        java.awt.image.BufferedImage.TYPE_INT_RGB);   
            FileOutputStream out = new FileOutputStream(serv.getFileManager().getFileDb(fileId).getFileName());
            JPEGImageEncoder jencoder = JPEGCodec.createJPEGEncoder(out);
            JPEGEncodeParam enParam = jencoder.getDefaultJPEGEncodeParam(buffy);
            enParam.setQuality(1.0F, true);
            jencoder.setJPEGEncodeParam(enParam);
            jencoder.encode(buffy);
            out.close();
            return Pic's SRC,
        }

  • How to display an animated image of any sort in centre of screen

    Hi,
    Would really appreciate some help on how to present the user with a animated image in the centre of the screen whilst a user is waiting for a operation to load/complete.
    I basically have a situation where a user presses a button to load a CSV file and during this operation, want to display this animated image and then remove it on completion.
    Thanks.
    Tony.

    Hi Tony,
    Is this the kind of thing you are looking for?
    Re: Displaying 'please wait' graphic during long running process
    Regards
    Paul

  • RoboHelp 8 HTML WebHelp How to display a larger image of a thumbnail by clicking on or rolling over the thumbnail?

    How would you display a larger image of a thumbnail by clicking or rolling over the thumbnail?

    Hi there
    For a mouseover you would have to add some custom developed JavaScript. You could probably find some pre-made on the web if you poked around.
    Generally speaking, any way you slice it you will be using two images. One for the thumbnail and one for the full sized image. You could employ the popup functionalty to pop up the larger image.
    I used to simply create DHTML drop-downs and insert the large images in the drop-down area.
    Cheers... Rick
    Helpful and Handy Links
    RoboHelp Wish Form/Bug Reporting Form
    Begin learning RoboHelp HTML 7 or 8 within the day - $24.95!
    Adobe Certified RoboHelp HTML Training
    SorcerStone Blog
    RoboHelp eBooks

  • How to display a dynamic image file from url?

    Hey,I want to display a dynamic image file from url in applet.For example,a jpg file which from one video camera server,store one frame pictur for ever.My java file looks like here:
    //PlayJpg.java:
    import java.awt.*;
    import java.applet.*;
    import java.net.*;
    public class PlayJpg extends Applet implements Runnable {
    public static void main(String args[]) {
    Frame F=new Frame("My Applet/Application Window");
    F.setSize(480, 240);
    PlayJpg A = new PlayJpg();
    F.add(A);
    A.start(); // Web browser calls start() automatically
    // A.init(); - we skip calling it this time
    // because it contains only Applet specific tasks.
    F.setVisible(true);
    Thread count = null;
    String urlStr = null;
    int sleepTime = 0;
    Image image = null;
    // called only for an applet - unless called explicitely by an appliaction
    public void init() {
                   sleepTime = Integer.parseInt(getParameter("refreshTime"));
              urlStr = getParameter("jpgFile");
    // called only for an applet - unless called explicitely by an appliaction
    public void start() {
    count=(new Thread(this));
    count.start();
    // called only for applet when the browser leaves the web page
    public void stop() {
    count=null;
    public void paint(Graphics g) {
    try{
    URL location=new URL(urlStr);
    image = getToolkit().getImage(location);
    }catch (MalformedURLException mue) {
                   showStatus (mue.toString());
              }catch(Exception e){
              System.out.println("Sorry. System Caught Exception in paint().");
              System.out.println("e.getMessage():" + e.getMessage());
              System.out.println("e.toString():" + e.toString());
              System.out.println("e.printStackTrace():" );
              e.printStackTrace();
    if (image!=null) g.drawImage(image,1,1,320,240,this);
    // called each time the display needs to be repainted
    public void run() {
    while (count==Thread.currentThread()) {
    try {
    Thread.currentThread().sleep(sleepTime*1000);
    } catch(Exception e) {}
    repaint(); // forces update of the screen
    // end of PlayJpg.java
    My Html file looks like here:
    <html>
    <applet code="PlayJpg.class" width=320 height=240>
    <param name=jpgFile value="http://Localhost/playjpg/snapshot0.jpg">
    <param name=refreshTime value="1">
    </applet>
    </html>
    I only get the first frame picture for ever by my html.But the jpg file is dynamic.
    Why?
    Can you help me?
    Thanks.
    Joe

    Hi,
    Add this line inside your run() method, right before your call to repaint():
    if (image != null) {image.flush();}Hope this helps,
    Kurt.

  • How to display a blob image in RTF template's Header.

    Hi,
    I want to display a blob image (logo company) in my RTF template,
    my problem is how i can display this image in the template's Header.
    I tried this
    <?
    <fo:instream-foreign-object content-type="image/jpeg" >
    <xsl:value-of select=".//LOGO"/>
    </fo:instream-foreign-object>
    ?>
    but was unsuccessful
    Thanks in advance.

    I tried this
    <?
    <fo:instream-foreign-object content-type="image/jpeg" >
    <xsl:value-of select=".//LOGO"/>
    </fo:instream-foreign-object>
    ?>
    but was unsuccessful
    sure
    what is red elements ?
    you template can be looks like
    ..... some data .....
    ( after  all data )
    <?template:footer_logo?>
    <fo:instream-foreign-object content-type="image/jpeg" ><xsl:value-of select=".//LOGO"/></fo:instream-foreign-object> (as field )
    <?end template?>
    <?call-template:footer_logo?> ( in header/footer )
    some remarks https://oralublog.wordpress.com/2014/10/04/bi-publisher-11g-footers-and-headers-in-rtf-template/

  • How to display a BLOB (Image) in a EBS Report?

    User requested to add a Logo image to a report which is called from E-Business Suite (EBS).
    The image is currently stores in a BLOB column.
    How can I make the image to display on the report?
    Thanks!

    I was trying to use the BLOB and display the image in a report.
    Per your suggestion:
    "Select the column in your query.
    Create an item in the layout editor and set the source to this column.
    Set File Format to Image."
    My question was I dont know how to "set the source to this column" as you described above.
    So, to work around it, I moved the image file phyically to the UNIX file system.
    Then, created an item in the layout editor which required a valid "image file path" the property palette.
    Since, the report was created under windows, it did not validate with UNIX file path.
    That's why i need to perform extra steps to get the file path correct to work in UNIX.
    EDIT:
    I guess when you said "set the source to this column", you mean to map the "Field source" attribute in the property palette to the database column from query.
    But depends on what item you want me to create (I created a "Link File" item) and it does not have the "Field source" attribute available to map to a database column.
    Edited by: user595907 on Sep 21, 2009 9:47 AM
    Edited by: user595907 on Sep 21, 2009 9:54 AM

  • Need Help Understanding How To Use iMessage Between Two iPhones

    I have an iPhone 4 and my wife an iPhone 3GS.  We both have iOS 5, but I have discovered something about iMessage I need to make sure I understand correctly.  As I understand it iMessage can send text even if our voice carrier service is unavailable.  I tend to loose signal inside the building I work in.  I usually can get texts in and out, but sometimes not.  But in testing the two phones sending iMessages, I've noticed is that if I have one of the phones with iMessage turned on and the other with iMessage turned off, the two phones will not be able to exchange text.  Is that how it's supposed to work?  Even though one of these phones can receive an iMessage doesn't mean the other one send one back.  Can't the system detect when one phone is connected and another one not, and the one that is not gets sent SMS messages instead?  I don't want to try to send my wife an iMessage because I can't get a voice signal in my building, but her have iMessages turned off and not able to get any messages from me, iMessage or SMS.  I guess I need help better understanding how this actually works between the two phones so I can always get texts back and forth between my wife and I.  My other misgiving is that this iMessage thing consumes my data limit.  My wife gets unlimited because she had her phone before the limits were imposed, but I got on board after, so I am hesitant to use iMessage all the time because of it.  I have no intention to send picture mail through iMessage, but the thing is if I wanted to switch to SMS to send picture mail to save data, but my wife's phone is set to iMessage, she won't get it.  If this is how this thing is supposed to work, I'm not really impressed.  Some insight would be appreciated

    I think you are making this way too complicated. Why are you turning iMessage off? If you are at your office connect to the WiFi there and send your wife messages that way (unless your office is blocking the port iMessage uses). When possible the two phones will use iMessage but will revert to SMS is iMessage is not available if that option is set that way.
    I would not worry about using up your data plan if you have the 2GB, text iMessages are going to be very small and MMS (picture) ones are not very large either. Unless you are sending hundreds of picture iMessages a day you will have a hard time using up your data.
    If you are near an Apple Store you should explore signing up for an intro iPhone course and have them run through iMessage options.

  • Sir, Prajavani.ap.nic.in is not properly displying in firfox, pl help to how to display it in firfox

    it is telugu language site its fonts not displaying with firefox ,pl help me how open it in firefox

    That web page uses a downloadable EOT (Embedded OpenType) font that only works in IE.
    Try to install the TLWHM0NT.TTF: TLW-TTHemalatha font
    *http://www.kamakoti.org/main/fonts.html
    You will have to disable downloadable fonts by setting the gfx.downloadable_fonts.enabled pref to false on the about:config page and set the encoding to Western (ISO-8859-1).
    *Firefox > Web Developer > Character Encoding or View > Character Encoding
    *http://kb.mozillazine.org/about:config
    You need to have installed support for complex scripts on Windows XP.
    See also Padma:
    *https://addons.mozilla.org/firefox/addon/padma/
    *http://padma.mozdev.org/

Maybe you are looking for

  • Help with flash buttons please

    hi i wondered if anyone could take a look at this for me please? http://beechhouse.yorkwebsites.co.uk why is it in explorer you have to click the button to activate it and then click it again to go to the page? and how can i fix this please?

  • Intermittent Garbage Behind Text Imported to FCP

    Hi - I'm animating some text with the wave behavior in Motion, adding a drop shadow and importing the Motion file into FCP. I'm getting some black areas behind the text that are not getting masked out in FCP. After searching the subject I changed the

  • Problem Upgrading Router Firmware on MI424WR-GEN3I

    Having trouble updating my router firmware.  Current version says:  40.21.18.  Status says: OK.  However, it says this below: " Internet Version:  Old Wireless Broadband Router version 40.21.10.3 found? Does this mean anything?  I'm wondering if the

  • Dbms_job.submit procedure called from Forms

    Folks, Since the DBMS_JOB.SUBMIT cannot be executed directly within a form, I created a simple procedure on the database which makes the call to DBMS_JOB.SUBMIT as follows: FUNCTION web_newsletter_submit_job(p_letter_id NUMBER) RETURN NUMBER IS v_job

  • Where to get WDIslandLibrary30.swc

    Hello~ Does anybody know where to get  WDIslandLibrary30.swc ? I have searched  my CE Ehp1 dictionary, but find nothing... Because my team members need this library to develop Flex by Flex 3.0 SDK, so I have to find this WDIslandLibrary30.swc . Thank