Package VisualLogic.variables

Source Code of VisualLogic.variables.ImageLoader

/*
MyOpenLab by Carmelo Salafia www.myopenlab.de
Copyright (C) 2004  Carmelo Salafia cswi@gmx.de

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

package VisualLogic.variables;

import java.awt.Component;
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.Toolkit;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.net.URL;
import java.net.URLConnection;


public class VSImage extends VSObject
{
    private Image image;
    private byte imageBytes[]=null;       
    private ImageLoader il=new ImageLoader();   
    public VSImage() { }  
   

public void loadImage(String fileName)
  {         
    try
    {      
       image=il.loadImage(Toolkit.getDefaultToolkit().getImage(fileName));

    } catch(Exception ex)
    {
      System.out.println(ex.getMessage());
    }
    File f = new File(fileName);
    int fileSize = (int) f.length();
    try
    {
      BufferedInputStream input = new BufferedInputStream( new FileInputStream( fileName ) );
      imageBytes = new byte[(int)fileSize];

      input.read(imageBytes);
      input.close();
      input=null;
    } catch(Exception ex)
    {
     System.out.println(ex);
    }
  }   
public void loadImage(URL url)
  {   
    try
    {      
       image=il.loadImage(Toolkit.getDefaultToolkit().getImage(url));

    } catch(Exception ex)
    {
      System.out.println(ex.getMessage());
    }
     
      //int fileSize = (int) f.length();
      try
      {
          URLConnection myConnection = url.openConnection();
          int length = myConnection.getContentLength();          
          BufferedInputStream input = new BufferedInputStream( myConnection.getInputStream() );
         
          imageBytes = new byte[length];

          input.read(imageBytes);
          input.close();
          input=null;
      } catch(Exception ex)
      {
         System.out.println(ex);
      }
  }   
    public Image getImage()
    {       
        return image;              
    }
   
  
   
    public void copyValueFrom(Object in)
    {
       if (in!=null)
       {
          VSImage temp =(VSImage)in;
          image=temp.getImage();
          imageBytes=temp.imageBytes;
          setChanged(temp.isChanged());
       } else image=null;
    }   

    public void copyReferenceFrom(Object in)
    {
      copyValueFrom(in);
    }   
       
   
   public int getWidth()
   {
       return image.getWidth(il);
   }
   public int getHeight()
   {
     return image.getHeight(il)
   }
 
 
   
   
    public void loadFromStream(java.io.FileInputStream fis)
    {
       java.io.DataInputStream dis = new java.io.DataInputStream(fis);
        try
        {
          int size=dis.readInt();
          if (size>0)
          {
              imageBytes = new byte[size];

              if (image!=null)
              {
                  image.flush();
              }

            fis.read(imageBytes);
            image = java.awt.Toolkit.getDefaultToolkit().createImage(imageBytes);
          } else
          {
              image=null;
          }
         
        } catch(Exception ex)
        {
          System.out.println(ex);
        }

       
        il.loadImage(image);
    }
   
    public void saveToStream(java.io.FileOutputStream fos)
    {

        java.io.DataOutputStream dos = new java.io.DataOutputStream(fos);

        try
        {         
          if (imageBytes!=null)
          {
            dos.writeInt(imageBytes.length);
            if (imageBytes.length>0)
            {
              fos.write(imageBytes);
            }
          } else
          {
            dos.writeInt(0);
          }
        } catch(Exception ex)
        {
         System.err.println("Error in VSImage.saveToStream() : "+ex.toString());
        }

                    
    }       
    public void loadFromXML(String name,org.w3c.dom.Element nodeElement)
    {      
    }

    public void saveToXML(String name, org.w3c.dom.Element nodeElement)   
    {            
    }
}




class ImageLoader extends Component
{

 
  public ImageLoader()
  {

  }
 
  public Image loadImage(Image img)
  {
    MediaTracker mc = new MediaTracker(this);
    mc.addImage(img,0);

    try
    {
     mc.waitForID(0);
    } catch (InterruptedException ex)
    {
    }
    return img;
  }
 
}
TOP

Related Classes of VisualLogic.variables.ImageLoader

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.