Skip to Main Content

Java SE (Java Platform, Standard Edition)

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

cannot convert from ImageIcon to Image

843807Aug 2 2007 — edited Aug 4 2007
Please tell me why I'm getting error: I have seen many example of this both in this forum and other places.

Type mismatch: cannot convert from ImageIcon to Image[b]

Thanks in advance

here's my code, I m using fileupload to load my images:
<%@ page import="java.util.List"%>
<%@ page import="java.util.Iterator"%>

<%@ page import="java.io.File" %>
<%@ page import="java.io.IOException"%>
<%@ page import="java.io.*"%>

<%@ page import="java.awt.image.ImageFilter"%>
<%@ page import="java.awt.Color"%>
<%@ page import="java.awt.image.ImageProducer"%>
<%@ page import="java.awt.image.ReplicateScaleFilter"%>
<%@ page import="java.awt.image.FilteredImageSource"%>

<%@ page import="javax.swing.*"%>


<%@ page import="java.awt.image.BufferedImage"%>
<%@ page import="java.awt.Image"%>
<%@ page import="java.awt.Graphics"%>
<%@ page import="java.awt.Toolkit"%>
<%@ page import="com.sun.image.codec.jpeg.JPEGCodec"%>
<%@ page import="com.sun.image.codec.jpeg.JPEGImageEncoder"%>


<%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
<%@ page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
<%@ page import="org.apache.commons.fileupload.*"%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

   <center><table border="2">
        <tr><td><h1>Your files  uploaded </h1></td></tr>
   <%
    //setting the target w + h
	int targetWidth=0;
    int targetHeight=0;

	//session values used to rename loaded image.
	String adID = "EM225";
	session.setAttribute("adID", adID);
	String fileName = null;

  
  
  // String imageid = request.getParameter("imgageID");
	boolean isMultipart = ServletFileUpload.isMultipartContent(request);
	if (!isMultipart) {
	} else {
	   FileItemFactory factory = new DiskFileItemFactory();
	   ServletFileUpload upload = new ServletFileUpload(factory);
	   List items = null;
	   

	   try {
		   items = upload.parseRequest(request);
	   } catch (FileUploadException e) {
		  
		   System.out.println("Unable to load image" +  e.getMessage());
	   }

	   Iterator itr = items.iterator();
	   while(itr.hasNext()) {
			FileItem item = (FileItem) itr.next();
			if (item.isFormField()) {
				//String name = item.getFieldName();  //This will get the field names. for eg. if u have a hidden field this line will get the hidden filed name.
                //value = item.getString();
				//out.println(value);
			} else {
		   try {
			   File fullFile  = new File(item.getName()); 
			   fileName = fullFile.getName();
			   String id = (String)session.getAttribute("adID");
			   String newName =  id+fileName;

			   //passing renamed uploaded image.
			   Image sourceImage = new ImageIcon(Toolkit.getDefaultToolkit().getImage(newName));
			   // Calculate the target width and height
			   float scale = 50/100;
			   targetWidth = (int)(sourceImage.getWidth(null)*scale);
			   targetHeight = (int)(sourceImage.getHeight(null)*scale);

			   BufferedImage resizedImage = this.scaleImage(sourceImage,targetWidth,targetHeight);

			   ByteArrayOutputStream baos = new ByteArrayOutputStream();
               JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(baos);
			   encoder.encode(resizedImage);
               byte[] b = baos.toByteArray(); 

			
			  // File tosave = new File(getServletContext().getRealPath("/"),resizedImage);
			  // item.write(tosave);
		   } catch (Exception e) {
			   System.out.println("Unable to save the image" + e.getMessage());
		   }
	     }
	   }
   }
   %>

   <%!

   private BufferedImage scaleImage(Image sourceImage, int width, int height){
        ImageFilter filter = new ReplicateScaleFilter(width,height);
        ImageProducer producer = new FilteredImageSource
        (sourceImage.getSource(),filter);
        Image resizedImage = Toolkit.getDefaultToolkit().createImage(producer);

        return this.toBufferedImage(resizedImage);
    }

    private BufferedImage toBufferedImage(Image image){
        image = new ImageIcon(image).getImage();
        BufferedImage bufferedImage = new BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_INT_RGB);
        Graphics g = bufferedImage.createGraphics();
        g.setColor(Color.white);
        g.fillRect(0,0,image.getWidth(null),image.getHeight(null));
        g.drawImage(image,0,0,null);
        g.dispose();

        return bufferedImage;
    }
   
   
   
   %>

    </table>
   </center>
  
    </table>
   </center>
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Sep 1 2007
Added on Aug 2 2007
2 comments
2,936 views