Problem reading image from input Stream

I'm having a problem reading an image through an input stream. It gives me the error
Premature end of JPEG file
sun.awt.image.ImageFormatException: JPEG datastream contains no imageand my code looks like
public Image getImage(String name, String command){
          if(command.equals(pCode)){
               Image image=null;
               System.out.println(name);
               InputStream is = getClass().getResourceAsStream(name);
               BufferedInputStream bis = new BufferedInputStream(is);
                byte[] byBuf =new byte[10000];
                 try {
                    int byteRead = bis.read(byBuf,0,10000);
               } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                 image = Toolkit.getDefaultToolkit().createImage(byBuf);
               return image;
          return null;
     }And the string name looks when printed is: usr/images/PRLogo.jpg

If the image is bigger than 10K, this code will break.
You can pass an InputStream to javax.imageio.ImageIO.read. That's probably an easier option than trying to do the buffering yourself.

Similar Messages

  • Reading data from input stream on unix

    I have a program that reads data from input stream from the socket. If the data is over 1500 bytes it is sent in multiple TCP packets. Whats weird is, if I run the program in windows environment it waits till it receives all the packets but when I run the same program in unix environment it only reads the first packet and go further without waiting for all the TCP packets!!
    The line that reads from input stream is
    datalen = inStr.read(byteBuffer);is there anyway I can make it wait till it receives all the packets on unix system? I do not understand why it works fine for windows in this case but not for unix.
    I'll appreciate any help..
    Thanks

    Try using a DataInputStream with the readfully() method.

  • Reading an image from input stream

    Hello all,
    I'm familiar with setting up an input stream but I have never actually done it. I'm making a connection to a URL (a JPG image). I would like to read the JPG from the URL using an input stream. With the URL class I was able to open a stream, however, I'm not exactly sure how to read from it.
    I'm aware of the read() method and read(byte[]) methods of inputstream. But how do I actually implement it?
    If I use read(), then bytes come in individually... do I need to combine them at one point? If I read the bytes into an array, how do I determine what size to set the array and how do I convert the byte array into an Image or ImageIcon?
    Please advise.
    R. Alcazar

    Hi,
    See http://java.sun.com/products/jdk/1.2/docs/guide/2d/api-jpeg/
    and especially JPEGCodec.createJPEGDecoder(java.io.InputStream).
    Anyway, you might not want to do it with InputStream. Instead you could try something like this:
    URLConnection con = // get it somehow
    Image i = (Image) con.getContent(new Class[] {Image.class});
    However, If you still want to use the InputStream, here you go with some pseudo code:
    InputStream in = // get the input stream with JPEG data...
    JPEGImageDecoder dec = JPEGCodec.createJPEGDecoder(in);
    Image i = dec.decodeAsBufferedImage();
    You can get the InputStream from the URLConnection with getInputStream(). However, I don't remember if the InputStream contained also the HTTP (or what ever protocol the URL specifies) headers. If it contains the headers, then you must rip them of before giving the InputStream to the JPEGCodec...
    If this is the case, try calling the URLConnection.getHeaderFields() method before getInputStream. This might not work though.

  • Getting image from input stream

    Hi,
    I'm using the following code in a midlet to get an image from a inputstream from a servlet.
    is = hc.openDataInputStream();
    ByteArrayOutputStream bStrm = new ByteArrayOutputStream();
    int d;
    while ((d = is.read()) != -1)
    bStrm.write(d);
    byte imageData[] = bStrm.toByteArray();
    im = Image.createImage(imageData, 0, imageData.length);
    ImageItem ii = new ImageItem(null, im, ImageItem.LAYOUT_DEFAULT, null);
    if (viewMap.size() != 0)
    viewMap.set(0, ii);
    else
    viewMap.append(ii);
    a problem occurs at
    im = Image.createImage(imageData, 0, imageData.length);
    and a 'exception java/lang/IllegalArgumentException'
    is generated. The inputstream is definitely not null.
    Can anyone see what I am doing wrong or recommend any alternative approaches?
    Thanks

    hi ,
    wouldn't "getResourceAsStream()" work here?
    ====
    kiran

  • I am facing a Problem with reading images from database

    Hi everybody..
    any help will be most appreciated, I am facing problem with reading images from database. I am pasting my code... 
                    string connect = "datasource = localhost; port = 3306; username = root; password = ;"; 
                    MySqlConnection conn = new MySqlConnection(connect); // creating connecting string
                    MySqlCommand sda = new MySqlCommand(@"select * from management.add_products ", conn); //creating query
                    MySqlDataReader reader; 
                    try
                        conn.Open(); // Opening Connection
                        reader = sda.ExecuteReader(); // Executing my Query..
                        while (reader.Read())
                            byte[] imgg = (byte[])(reader["Picture"]);
                            if (imgg == null)
                                pc1.Image = null;
                            else
                                MemoryStream mstream = new MemoryStream(imgg);
                                pc1.Image = System.Drawing.Image.FromStream(mstream);
    It says Parameter not Valid... i am reading all the images from database

    I agree with Viorel. You are getting the error because the format of the data is incorrect probably because the data was modify. It may not be the reading of the database the is incorrect, but the application that wrote the data into the database. You need
    to compare the imgg array data with the data before it was written to the database to see if the data matches.  I usually start by comparing the number of bytes which is easier to check then compare the actual to isolate which function is changing the
    byte count.
    An image is binary data.  The standard VS methods for reading and writing data (usually stream classes) default to ASCII encoding which will corrupt binary data.  The solution usually is to use UTF8 encoding instead of the default ascii encoding. 
    Ascii encoding with stream often aligns the data and adds extra null bytes to the end of the data which can produce these type errors.
    jdweng

  • Read image from scanner

    i want to interact with hardware(scanner) in java
    i want to read image and store in database
    for this
    1.) i want to read image from scanner
    2.) how do i start scanner process
    from where i gonna start
    plz help me to interact with hardware

    Hi, I have faced a similar problem and solved it using the morena api http://www.gnome.eu/Twain/examples/studio.html
    Problem is the scanner works fine with TWAIN, but with SANE, it is totally failing. There is a permanent connection refusal form the scanner ip whenever
    i try to use a network scanner. I am not sure how to solve it. If anyone has solved this please revert back.
    Regards,
    Anthony

  • Read images from external jar file (Sun's Java L&F Graphics repository)

    Hi!
    I don't know how to read images from an external jar file. Sun has a Java Look and Feel graphics repository that contains a lot of good images that can be used on buttons and so on. This repository is delivered as a jar file, containing only images, and I want to read the image files from that jar file directly without including them inside my application jar file. The application and image jar files will be in the same directory.
    I have absolutely no clue how to solve this. Is it necessary to include the images inside my application jar file or is it possible to have them separate as I want.
    Would really appreciate some help!
    Best regards
    Lars

    Hi,
    There is two ways :
    1) Add your jarfile to the classpath.
    Use the class loader :
    URL url = ClassLoader.getSystemResource("your/package/image.gif");
    Image im = (new ImageIcon(url)).getImage();
    or
    Image im = Toolkit.getDefaultToolkit().getImage(url);2)If you don't want to add the jar to the classpath you can use this (under jdk 1.4):
    import java.util.*;
    import java.util.jar.*;
    import java.awt.*;
    import java.io.*;
    import java.awt.image.*;
    import javax.imageio.*;
    public class ImageUtilities {
         public static Image getImage(String jarFileName, String fileName) {
              BufferedImage image = null;
              try {
                   JarFile jar = new JarFile(new File(jarFileName), false, JarFile.OPEN_READ);
                   JarEntry entry = jar.getJarEntry(fileName);
                   BufferedInputStream stream = new BufferedInputStream(jar.getInputStream(entry));
                   image = ImageIO.read(stream) ;
              catch (Exception ex) {
                   System.out.println(ex);
              return(image);
    }I hope this helps,
    Denis

  • Read image from excelsheet using labview

    i need to know how to read image from excel sheet using Labview...m not able to get the appropriate property to display the image stored in excel sheet.
    thank you

    you need to ask Microsoft to find out the property name/location under Microsoft Excel. 

  • Reading Images from JAR Files

    Hi,
    I am having a very difficult time being able to read images from a JAR file via my Applet. I have tried everything that I know about with no luck. The only way I can get this to work is to store the images individually in a sub directory of public_html on the websever. This works, but I would like the images to come down in a JAR file for performance reasons.
    I am using Internet Explorer 5.5 for my browser. I checked the options and everything seems to be in order, but......
    I would appreciate any feedback that anyone might have on this topic..........
    Thank You....

    once in a jar file i inserted a image
    the jar file on clicking starts an frame.
    so the image was for getting that image at the icon place at top and at minimized window
    i could not get that image from jar file by new imageicon().getimage();
    but i get the image if it is in the directory in which jar file is.....
    can one explain the reason

  • Read image from R3

    Hi everyone,
    How can I read images from R3?
    Regards
    Eduardo Campos

    you need to ask Microsoft to find out the property name/location under Microsoft Excel. 

  • Reading Images from DB2 content Manager

    Has anybody have read images from IBM db2 content manager using oracel forms.
    any links will be helpfu;
    or any links to how to make windows API calls in forms 5.0.

    OK, I found Greg's reply and that fixed it, once I played with it a bit.
    "Cory McGinnis" <[email protected]> wrote:
    >
    I am displaying an html page from a <cm:select> but the images do not
    display.
    I have set up the dmsbase directory as per the samplePortal, and loaded
    the content.
    The HTML displays, but with errors for the images.
    Here's the select from the portlet:
    <cm:select contentHome="<%=ContentHelper.DEF_CONTENT_MANAGER_HOME%>"
    query="type='page'"
    id="textDocs"/>
    <es:forEachInArray array="<%=textDocs%>" id="aTextDoc" type="com.bea.p13n.content.Content">
    <p><cm:printDoc id="aTextDoc" failOnError="true" /></p>
    </es:forEachInArray>

  • Problem reading data from oracle database 11g using OleDbDataReader

    Hi everyone I work with Visual Studio 2010 and C# programming language. I have a problem reading data from the oracle database. I created a WPF application with my main Window Xaml and class files and 1 more class called DataFiles. The thing I want is to read some data from the database on my grid in my WPF window. Problem is even though it connects to the database the grid is always empty. It isn't the connection string as I tested it and it connects to the database the problem seems to be in showing the LASTNAME (PREZIME in my native tongue) on the grid which is what it's supposed to do.
    Here is the code:
    Data Files Code
    using System;
    using System.Collections.ObjectModel;
    using System.Data.SqlClient;
    using System.Data.OleDb;
    namespace SQLKonekcija
        public class clsEmployee
            public string Prezime { get; set; }
        public class DataAccess
            OleDbConnection oleCon;
            OleDbCommand oleComd;
            public DataAccess()
                string connectionString = "provider=ORAOLEDB.ORACLE; data source=ORCL; password=****; user id=****;";
                oleCon = new OleDbConnection(connectionString);
            public ObservableCollection<clsEmployee> GetAllEmployee()
                ObservableCollection<clsEmployee> EmpCol = new ObservableCollection<clsEmployee>();
                oleComd = new OleDbCommand();
                oleComd.Connection = oleCon;
                oleComd.CommandText = "Select PREZIME from UPOSLENICI";
                oleCon.Open();
                OleDbDataReader Reader = oleComd.ExecuteReader();
                Reader.Read();
                while (Reader.Read())
                    EmpCol.Add(new clsEmployee()
                        Prezime = Reader["PREZIME"].ToString()
                oleCon.Close();
                return EmpCol;
            }And here is my main window.cs code
    public partial class MainWindow : Window
            clsEmployee objEmpToAdd;
            DataAccess objDs;
            public MainWindow()
                InitializeComponent();
            private void Window_Loaded(object sender, RoutedEventArgs e)
                objDs = new DataAccess();
                dgEmp.ItemsSource = objDs.GetAllEmployee();And the XAML
    <Window x:Class="SQLKonekcija.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded">
        <Grid>
            <DataGrid AutoGenerateColumns="False" Height="237"
                      HorizontalAlignment="Left" Margin="18,66,0,0" Name="dgEmp"
                      VerticalAlignment="Top" Width="466" ColumnWidth="*"
                       >
                <DataGrid.Columns>
                    <DataGridTextColumn Binding="{Binding PREZIME}" Header="Prezime"></DataGridTextColumn>
                </DataGrid.Columns>
            </DataGrid>
            <TextBlock Height="42" HorizontalAlignment="Left" Margin="18,15,0,0" Name="textBlock1" Text="TEST CONNECTION" VerticalAlignment="Top" Width="462" TextAlignment="Center" FontSize="28" FontWeight="ExtraBold" />
        </Grid>
    </Window>
    The guys on the MSDN forums told me I should ask the question here so sorry if it's not your field.
    Hope u guys can help, thanks.

    I tried it, commented out the reader.read and have the following connection string
    string connectionString = "provider=ORAOLEDB.ORACLE; data source=ORCL; password=****; user id=****; OLEDB.NET=True"
    Unfortunately the result is the same.
    Edited by: Dino2dy on Nov 24, 2011 12:53 AM

  • JavaConsole Error: Problem reading data from server

    HI All
    We are getting this error on java console on a page:
      Error: Problem reading data from Server - Java.Security.AccessControlException:access denied (java.util.PropertyPermission http.strictpostredirect Read)
    In this page we are not firing  a SQL Query of huge data.
    Any suggestions on this why it is happening?
    Thanks
    Manisha

    Manisha,
    I think JVM(Java Virtual Machine) is trying to access something at network level and it cant able to find it.Or any new patches of java is installed.
    Or may be due to IIS or Applet,Don't know exactly.
    You can find some answers in below links:
    http://java.sun.com/j2se/1.4.2/docs/api/java/security/AccessControlException.html
    http://www.webdeveloper.com/forum/archive/index.php/t-46358.html
    -Suresh

  • URL stream throws exception when trying to read from input stream

    Hi guys,
    I tried reading from an input stream which returned a 401. Actually, the server side returns 401 whenever the application server cannot fulfill the client's request, however the 401 contains a message which I will like to read.
    I have tried this with mozilla and the return message is properly displayed even at 401. How can I read this message?

    Oracle home is pointing to wrong location.When we made the change to corrent location.Then we rebuilt the jar file started the managed server it is working fine.

  • How Read image from slingRequest

    Hi,
    We have a user input form which contains input file (image) selection. When user submits the form, we want to read the file selected by user and store it as base 64 encoded data. We have following code to do the same. This code gets executed when the form is submitted.
    //Read image data from slingRequest
    String userImage1 = slingRequest.getParameter("userImage1");
    //Apply base 64 encoding on the data received in slingRequest
    String encodedUserFile = "";
    byte[] userFileBytes = userImage1.getBytes();
    encodedUserFile = Base64.encodeBase64String(userFileBytes);
    These statements are not throwing any error. But, when I try to apply base 64 decoding on the contents available in 'encodedUserFile', its' not the image user uploaded. There seems to be some problem, which I am not able to figure out. Can someone please help me with this?

    Hi,
    You need to use the Sling RequestParameter interface to get an uploaded file.
    See:
    http://sling.apache.org/site/request-parameters.html
    http://sling.apache.org/apidocs/sling6/org/apache/sling/api/request/RequestParameter.html
    Regards,
    Justin

Maybe you are looking for

  • Can I get my money back for an app that I didn't like?

    Apparently I purchased the wrong app and I would like to get my money back, is that possible?

  • Index (HHK) sorting issue in Japanese (RoboHelp X3)

    I'm a Japanese localizing engineer who now tries to generate a WebHelp with a nicely sorted index in Japanese. As I assume that this has been a known issue for double-byte languages for a long time, a Japanese index cannot be sorted perfectly in a co

  • Crash on movie import

    I can't import any movie format into InDesign CS5, it crashes InDesign no matter what. I've been through all the pref clean up, etc, CRASHES EVERY TIME. Used Quicktime and Adobe Media Encoder but none of the formats work. Very frustrating.

  • How do I get rid of Yahoo and Bing as interloper search engines? I want Google ONLY!!

    I installed a "free" winzip-type app, 7-ZIP and installed some other stuff without notice, including Yahoo and bing. I want my Firefox browser back the way it was before yesterday

  • [Solved] Silent LUKS boot

    [Synopsis] Create a hook as shown below to silence the kernel. I'd like to have a truly silent boot as in the Wiki but it only seems to address the login prompt. I would also like to get rid of the (USB) boot messages pollution of the the LUKS passwo