How to load a gif?

in an application, not an applet, how do i open a gif file so that I can pass an Image as an arguement to createCustomCursor(Image, Point, String).

Correction: Toolkit.getImage();"Returns an image which gets pixel data from the specified file, whose format can be either GIF, JPEG or PNG."

Similar Messages

  • How can I load a gif or jpg in a JFrame (background)

    I wanna load a gif or jpg image as a background at a JFrame. How can do this?
    Thanks

    I have tried that but my image always paints over the swing components. Could you give more a code snippet?

  • How to load color table in a indexed mode file??

    How to load color table in a indexed mode file??
    Actually, if i opened a indexed file and want to edit color table by loading another color table from desktop (or any other location), any way to do this through java scripting??

    continuing...
    I wrote a script to read a color table from a GIF file and save to an ACT color table file. I think it might be useful for someone.
    It goes a little more deeper than the code I posted before, as it now identifies the table size. It is important because it tells how much data to read.
    Some gif files, even if they are saved with a reduced palette (less than 256), they have all the bytes for the full color palette filled inside the file (sometimes with 0x000000). But, some gif files exported in PS via "save for web" for example, have the color table reduced to optimize file size.
    The script store all colors into an array, allowing some kind of sorting, or processing at will.
    It uses the xlib/Stream.js in xtools from Xbytor
    Here is the code:
    // reads the color table from a GIF image
    // saves to an ACT color table file format
    #include "xtools/xlib/Stream.js"
    // read the 0xA byte in hex format from the gif file
    // this byte has the color table size info at it's 3 last bits
    Stream.readByteHex = function(s) {
      function hexDigit(d) {
        if (d < 10) return d.toString();
        d -= 10;
        return String.fromCharCode('A'.charCodeAt(0) + d);
      var str = '';
      s = s.toString();
         var ch = s.charCodeAt(0xA);
        str += hexDigit(ch >> 4) + hexDigit(ch & 0xF);
      return str;
    // hex to bin conversion
    Math.base = function(n, to, from) {
         return parseInt(n, from || 10).toString(to);
    //load test image
    var img = Stream.readFromFile("~/file.gif");
    hex = Stream.readByteHex(img);      // hex string of the 0xA byte
    bin = Math.base(hex,2,16);          // binary string of the 0xA byte
    tableSize = bin.slice(5,8)          // Get the 3 bit info that defines size of the ct
    switch(tableSize)
    case '000': // 6 bytes table
      tablSize = 2
      break;
    case '001': // 12 bytes table
      tablSize = 4
      break;
    case '010': // 24 bytes table
      tablSize = 8
      break;
    case '011': // 48 bytes table
      tablSize = 16
      break;
    case '100': // 96 bytes table
      tablSize = 32
      break;
    case '101': // 192 bytes table
      tablSize = 64
      break;
    case '110': // 384 bytes table
      tablSize = 128
      break;
    case '111': // 768 bytes table
      tablSize = 256
      break;
    //========================================================
    // read a color (triplet) from the color lookup table
    // of a GIF image file | return 3 Bytes Hex String
    Stream.getTbColor = function(s, color) {
      function hexDigit(d) {
        if (d < 10) return d.toString();
        d -= 10;
        return String.fromCharCode('A'.charCodeAt(0) + d);
      var tbStart = 0xD; // Start of the color table byte location
      var colStrSz = 3; // Constant -> RGB
      var str = '';
      s = s.toString();
         for (var i = tbStart+(colStrSz*color); i < tbStart+(colStrSz*color)+colStrSz; i++) {
              var ch = s.charCodeAt(i);
              str += hexDigit(ch >> 4) + hexDigit(ch & 0xF);
          return str;
    var colorHex = [];
    importColors = function (){
         for (i=0; i< tablSize; i++){ // number of colors
              colorHex[i] = Stream.getTbColor(img, i);
    importColors();
    // remove redundant colors
    // important to determine exact color number
    function unique(arrayName){
         var newArray=new Array();
         label:for(var i=0; i<arrayName.length;i++ ){ 
              for(var j=0; j<newArray.length;j++ ){
                   if(newArray[j]==arrayName[i])
                        continue label;
              newArray[newArray.length] = arrayName[i];
         return newArray;
    colorHex = unique(colorHex);
    // we have now an array with all colors from the table in hex format
    // it can be sorted if you want to have some ordering to the exported file
    // in case, add code here.
    var colorStr = colorHex.join('');
    //=================================================================
    // Output to ACT => color triplets in hex format until 256 (Adr. dec 767)
    // if palette has less than 256 colors, is necessary to add the
    // number of colors info in decimal format to the the byte 768.
    ColorNum = colorStr.length/6;
    lstclr = colorStr.slice(-6); // get last color
    if (ColorNum < 10){
    ColorNum = '0'+ ColorNum;
    cConv = function (s){
         var opt = '';
         var str = '';
         for (i=0; i < s.length ; i++){
              for (j=0; j<2 ; j++){
                   var ch = s.charAt(i+j);
                   str += ch;
                   i ++;
              opt += String.fromCharCode(parseInt(str,16));
              str = '';
         return opt
    output = cConv(colorStr);
    // add ending file info for tables with less than 256 colors
    if (ColorNum < 256){
         emptyColors = ((768-(colorStr.length/2))/3);
         lstclr = cConv(lstclr);
         for (i=0; i < emptyColors ; i++){
              output += lstclr; // fill 256 colors
    output += String.fromCharCode(ColorNum) +'\xFF\xFF'; // add ending bytes
    Stream.writeToFile("~/file.act", output);
    PeterGun

  • How to load images from different path

    Hi,
    i'm triying to load an image using the next code:
    String path="C:/images/tv_on.gif";
    java.net.URL imgURL =new java.net.URL(path);
    img=Toolkit.getDefaultToolkit().getImage(imgURL);
    but when it is compiled it returns MalformedURLException.
    the image is in my local directory so i've tryed to define
    path="file:///C:/images/tv_on.gif";
    becuase the port and the local host name aren't needed.
    Anyway it does not work.
    I don't know how to load an image that it is in a file in a different path from the mainclass path
    CAN ANYONE HELP ME?

    sorry to bother, similar like above, i tried many times on my computer to load a simple image in java application.. here's my code:
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.image.*;
    import java.io.*;
    import java.net.*;
    import javax.swing.*;
    public class View extends JFrame {
         private URL imageURL;
         private File file;
         private Image sourceImage;
         private String name, title, message;
         private int width, height;
        public static void main(String[] args) {
            System.out.println( "Hello Eros!!!" );
            View img = new View();
        public View() {
             name = "D:/shared/inputpic.gif";
             file = new File( name );
            Toolkit toolkit = Toolkit.getDefaultToolkit();
            try {
                imageURL = new URL("http://www.google.com.my/images/logo_sm.gif" );
            } catch (MalformedURLException e) {
            if ( file == null ) {
                sourceImage = Toolkit.getDefaultToolkit().getImage( name );
                System.out.println( file );
            } else {
                sourceImage = toolkit.getImage( imageURL );
                System.out.println( file );
            width = sourceImage.getWidth( this );
            height = sourceImage.getHeight( this );
            System.out.println( "Pixel = " + width + "x" + height );
            if ( width * height == 1 ) {
                title = "Greetings";  // Shown in title bar of dialog box.
                if ( file == null ) {
                    message = "Unable to load the file " + name;
                } else {
                    message = "Unable to load the link " + imageURL;
                JOptionPane.showMessageDialog(null, message, title, JOptionPane.INFORMATION_MESSAGE);
    }could anyone test this n give my the reason i couldnt even load the image

  • How to load image in Long Raw column?

    Dear all,
    I need to upload a jpg image to a Long Raw column in one of our tables. Is there a way or utility so that I can do this thru a PL/SQL code? Please help.
    Regards,
    Amit

    You must not be using LONG data type. It has been deprecated. You must be using BLOB. Here is an extract from AskTom.com on how to load a file into BLOB field.
    create table demo
    ( id        int primary key,
      theBlob    blob
    create or replace directory my_files as '/export/home/tkyte/public_html';
    declare
        l_blob    blob;
        l_bfile    bfile;
    begin
        insert into demo values ( 1, empty_blob() )
        returning theBlob into l_blob;
        l_bfile := bfilename( 'MY_FILES', 'aria.gif' );
        dbms_lob.fileopen( l_bfile );
        dbms_lob.loadfromfile( l_blob, l_bfile,
                                   dbms_lob.getlength( l_bfile ) );
        dbms_lob.fileclose( l_bfile );
    end;
    /Below is the link for the same.
    http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:232814159006

  • How to load mutiple image

    I'm trying to create a photo manager but I can't find a way to load multiple images onto my frame. I have a thumbnail class that makes thumbnails for an image (which is a modified version of the class ImageHolder from FilthyRichClient)
    public class Thumbnails {
         private List<BufferedImage> scaledImages = new ArrayList<BufferedImage>();
    private static final int AVG_SIZE = 160;
    * Given any image, this constructor creates and stores down-scaled
    * versions of this image down to some MIN_SIZE
    public Thumbnails(File imageFile) throws IOException{
              // TODO Auto-generated constructor stub
         BufferedImage originalImage = ImageIO.read(imageFile);
    int imageW = originalImage.getWidth();
    int imageH = originalImage.getHeight();
    boolean firstScale = true;
    scaledImages.add(originalImage);
    while (imageW >= AVG_SIZE && imageH >= AVG_SIZE) {
         if(firstScale && (imageW > 320 || imageH > 320)) {
              float factor = (float) imageW / imageH;
              if(factor > 0) {
              imageW = 320;
              imageH = (int) (factor * imageW);
              else {
                   imageH = 320;
                   imageW = (int) (factor * imageH);
         else {
              imageW >>= 1;
         imageH >>= 1;
    BufferedImage scaledImage = new BufferedImage(imageW, imageH,
    originalImage.getType());
    Graphics2D g2d = scaledImage.createGraphics();
    g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
    RenderingHints.VALUE_INTERPOLATION_BILINEAR);
    g2d.drawImage(originalImage, 0, 0, imageW, imageH, null);
    g2d.dispose();
    scaledImages.add(scaledImage);
    * This method returns an image with the specified width. It finds
    * the pre-scaled size with the closest/larger width and scales
    * down from it, to provide a fast and high-quality scaled version
    * at the requested size.
    BufferedImage getImage(int width) {
    for (BufferedImage scaledImage : scaledImages) {
    int scaledW = scaledImage.getWidth();
    // This is the one to scale from if:
    // - the requested size is larger than this size
    // - the requested size is between this size and
    // the next size down
    // - this is the smallest (last) size
    if (scaledW < width || ((scaledW >> 1) < width) ||
    (scaledW >> 1) < (AVG_SIZE >> 1)) {
    if (scaledW != width) {
    // Create new version scaled to this width
    // Set the width at this width, scale the
    // height proportional to the image width
    float scaleFactor = (float)width / scaledW;
    int scaledH = (int)(scaledImage.getHeight() *
    scaleFactor + .5f);
    BufferedImage image = new BufferedImage(width,
    scaledH, scaledImage.getType());
    Graphics2D g2d = image.createGraphics();
    g2d.setRenderingHint(
    RenderingHints.KEY_INTERPOLATION,
    RenderingHints.VALUE_INTERPOLATION_BILINEAR);
    g2d.drawImage(scaledImage, 0, 0,
    width, scaledH, null);
    g2d.dispose();
    scaledImage = image;
    return scaledImage;
    // shouldn't get here
    return null;
    A loop will loop through a collection of files and pass them to the constructor of Thumbnails to create thumbnails and then set them as icon for JLabels that will be added to a JPanel, but it throws a java.lang.OutOfMemoryError at this line:
    BufferedImage originalImage = ImageIO.read(imageFile);
    even when there're only about 8 image files in the collection (total size 2,51MB).
    I've seen other people's software that could load hundreds of photos in a matter of seconds! How do I suppose to do that? How to load mutiple images efficiently? Please help!! Thanks a lot!

    another_beginner wrote:
    Thanks everybody! I appreciate your help! I don't understand why but when I use a separate thread to do the job, that problem disappear. You were likely doing your image loading and thumnail creation on the Event Dispatching Thread. Among other things, this is the same thread that updates and paints your panels, frames, buttons, ect.. When a programer does something computationaly expensive on the event dispatching thread then the GUI becomes unresponsive until the computation is done.
    Ideally what you want to do is load images and create thumnails on a seperate thread and update your GUI on the event dispatching thread. I supect that while you are finally doing the first item, you might now be violating the second item.
    Whatever, the program seems to be pretty slow on start up 'cause it have to reload images everytime. I'm using Picasa and it can display those thumbnails almost instantly. I know that program is made by professionals. But I still want to know how.I took a look at this Picasa you mentioned. It's the photo manager from google right? You're right in that the thumnails display instantly when starting up. This is because Picasa is actually saving the thumnails, instead of creating them everytime the program starts up. It only creates the thumnails once (when you import a picture) and saves the thumnail data to " +*currentUser*+ /AppData/Local/Google/Picasa2/db3/" (at least on my computer --> Vista).
    Also, if your looking for speed then for some inexplicable reason java.awt.Toolkit.getDefaultToolkit().createImage(...); is faster (sometimes much faster) than ImageIO.read(...). But there comes a price in dealing with Toolkit images. A toolkit image isn't ready for anything until it has been properly 'loaded' using one of several methods. Also, when you're done and ready for the image to be garbage collected then you need to call Image.flush() or you will eventually find yourself with an out of memory error (BufferedImages don't have this problem). Lastly, Toolkit.createImage(...) can only read image files that the older versions of java supported (jpg, png, gif, bmp) .
    And, another question (or maybe I should post it in a different thread?), I can't display all thumbnails using a JPanel because it has a constant height unless I explicitly set it with setPreferredSize. Even when put in a JScrollPane, the height doesn't change so the scrollbar doesn't appear. Anyone know how to auto grow or shrink a JPanel vertically? Or I have to calculate the preferred height by myself?Are you drawing the thumnails directly on the JPanel? If so then you will indeed need to dynamically set the preferred size of the component.
    If not, then presumebly your wrapping the thumnails in something like a JLabel or JButton and adding that to the panel. If so, what is the layout manager you're using for the panel?

  • How to load use an image library in the portal pages

    Hi,
    How to load an image library in the portal ? Do I need to load images in an Apache directory and access them via URLs, or do I need to upload images to a specific portal page, and access these images via specific URL ?
    Thanks for your help,
    Jean-Christophe

    Another easy method is to create a dedicated page in Portal and use it for the storage of images, flash objects.
    Load the images as item type FILE and use the 'direct access' method (HOST:PORT/pls/<DAD>/docs/PAGE/<PG NAME>/<PAGE_NAME>/IMAGE.GIF)to access the file from a URL command.
    This way all your images are protected in the database, easy to add and find (via search or by adding descriptions, categories etc) via role based security and in theory should be quicker to access (via the URL) due to the indexing capabilities of the database.
    Place the images in a location that is not going to cause a page navigation issue such as in its own Page Group or as sibling page to your top level parent page etc.
    Hope this helps.
    John

  • How to load an icon on image

    Hello friends please hel[p me as to how to load an icon on an image in the backgorund.                                                                                                                                                                           

    using JFrame, I use following code in the constructor
    public class MyConfig extends JDialog {
       public MyConfig(JFrame parent, boolean modal) {
                java.net.URL imgURL = MyConfig.class.getResource("images/colorcircle.gif");          
                parent.setIconImage(new ImageIcon(imgURL).getImage());
        public static void main(String[] args) {
            MyConfig c = new MyConfig(new JFrame(), true);
            c.setVisible(true);
    }

  • How to load a Jar file in the class path?

    How to load a Jar file which contains class files, images, etc.. in the classpath without using URLClassLoader.

    You don't "load" jars. If it's on the classpath, you can obtain individual resources from it using various methods on either Class or ClassLoader. Do you mean "how to add a jar to the classpath at runtime"? Can't be done without using a classloader, typically URLClassLoader or a subclass thereof. Why you want to not use the proven method is beyond me. Presumably because you don't understand classloading. In which case, forget it.

  • How to load a client file in a clob using sqlcl

    How to load a client file in a clob using sqlcl

    You don't "load" jars. If it's on the classpath, you can obtain individual resources from it using various methods on either Class or ClassLoader. Do you mean "how to add a jar to the classpath at runtime"? Can't be done without using a classloader, typically URLClassLoader or a subclass thereof. Why you want to not use the proven method is beyond me. Presumably because you don't understand classloading. In which case, forget it.

  • How to load data to a cube from multiple infosources ?

    Hi friends,
    How to load data to a cube from multiple infosources ? could u please answer this question .
    thanks in advance......

    Hi ,
    say for example you need to load data to 1 cube from 3 info sources:
    1) You need to create 3 update rules for the Cube.
    2) Each time you create the update rules. Mention the name the name of the Info source. and create update rules correspondingly.
    Regards
    satish
    Message was edited by:
            satish murthy

  • How to load beginning balance

    Hi :
    How to load beginning balance to repective g/l account in SAP?

    If you want to load balances at the time of go live.
    Create a clearing account like data take over A/c
    MM will upload material balances using tcode MB1C and movement type 561
    it will generate the following accounting entry
    Finished goods stock a/c          Debit
    Semi-Finished goods stock a/c Debit
    Raw Material stock a/c             Debit
    Packing Material stock a/c        Debit
    Stores and spares a/c              Debit
    Data take over                          Credit
    Customer a/c (not recon G/l) Debit
    Data takeover a/c                  Credit
    Data takeover a/c                Debit
    Vendor a/c (not recon GL) Credit
    For Asset - tcode OASV
    Plant and Machinery a/c          Dr
    Accumulated depreciation a/c Credit
    Data takeover a/c                    Credit
    Cash balance through FBCJ
    G/L Tcode F-02,
    Data takeover a/c     Debit  (Balancing figure)
    Bank a/c                    Debit
    Advances                 Debit
    Share capital a/c       Credit
    Short term Loan a/c   Credit
    Long term loan a/c     Credit

  • Problem in loading animated gif

    I have problem in loading animated gif with ClassLoader. Here is the code:
    ClassLoader loader=this.getClass().getClassLoader();
    URL res = loader.getResource(name);
    if (res!=null) {
    ImageIcon icon = new ImageIcon(res);
    if (icon != null) {
    Image image = icon.getImage();
    if(icon.getImageLoadStatus() == MediaTracker.COMPLETE)
    images.put(name,image);
    return (Image) image;
    } else {
    System.out.println("Failed to load "+name+" error "+icon.getImageLoadStatus());
    images.put(name,"");
    Only when the gif is an animated gif, I get error message: Failed to load and icon.getImageLoadStatus() returns 2. Otherwise, it works.
    Anyone encounters the same problem as me?

    I think the problem is the asynchronous loading of the gif.
    when you call f(icon.getImageLoadStatus() == MediaTracker.COMPLETE)
    I think it is comming back MediaTracker.LOADING .
    for an animated gif, it may not come back COMPLETE until after running thru
    the whole automation. instead you could just check:
    (icon.getImageLoadStatus() != MediaTracker.ERRORED)

  • How do I import gifs on Lion OS?

    Hey, okay so I bought a new mac it has OSX Lion, and I downloaded my Adobe Creative Suite CS4. The one hiccup and the only thing I used it for is edit gifs. When I go to file import - Video Frames to Layers is an option however I can not load a gif into the program. I tried * and everything is still greyed out. I think it's missing a plugin. Adobe tells me to upgrade but you can't upgrade from CS4 to CS6 and the people at Mac tell me that even though my product isn't that old Adobe products can adapt fast enough. I want to know if there is a viable solution to what should be a simple problem or should I move on from Adobe because it is too expensive.

    Nope when i open it a box comes up telling me it's an animated gif you can only view one frame, if only Adobe made it that simple.

  • How can i control gif animations?

    I have a project in which i need some animations. The animations all have been created in After Effects. Now I can use the png sequences, but these are very big and i need a lot animations running on the same time. So i would rather use the gif animations. So my question: I can control when to play the gif animation but i can't play it more than one time. Is there a solution?
    Thanks for answering!
    Jannis

    Hi there,
    I see...you're controlling when it displays. Technically, that's not the same as controlling the animated GIF; you're just controlling when you see it. EA recognizes GIF only as an image format, and can't make the browser play from the beginning other than the first time it's displayed or when it loops back (if your animated GIF loops).
    However, you could do something similar with an extra image file or two, jQuery, and css background-image to "load" the GIF file into a transparent image. Here's a link to an example that always runs the animated GIF from the beginning:
    https://creative.adobe.com/share/52f15194-875b-4604-8857-9b9bf5f78e04
    A single line of code that does the work is in the playBtn click handler.
    hth,
    Joe

Maybe you are looking for

  • I need to upgrade my hard drive

    I have a 320gb hard drive and I want to upgrade to a 1TB or a 750gb, but I'm not sure which drive to get.  I have a mid 2011 13' Macbook Pro. 2.3 GHz Intel Core i5 8GB 1333 MHz DDR3 Can anyone make any recommendations?

  • Cheque numbers

    Hi All. The payment and system has assigned cheque against document numbers as pre cheque series updated in the SAP. But the actual Cheque Numbers given to parties/vendors are different than cheque numbers assigned in SAP. We want to assign new Chequ

  • Alternative to PhotoShop?

    I am preparing a family photo album for printing. The printer wants files to be 600 dpi, CMYK, PDFs. I previously prepared some using PhotoShop. The files were so large the printer had to take them into InDesign to reduce the size. I am now trying ou

  • How to access SMP if I don't use SAP product but only MaxDB?

    Hi All, I am sorry if this is answered elsewhere, I am a MaxDB user and our company operates a website with MaxDB as the data engine behind it since 2003. Recently I am evaluating if we can use synchronization to scale out, however I hit road blocks

  • Human readable decision tree?

    Hello, I have a scenario where its necessary to stroe a human readable form of the rules processing together with the result. For example when someone phones a call centre, they are not just told that based on their circumstances, the answer is 42, b