save it into file firstImage img=...
int width = img.getWidth(null);
int height = img.getHeight(null);
BufferedImage bi = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
Graphics g = bi.getGraphics();
g.drawImage(img,0,0,width,height,null);
g.dispose();
File f = new File("c:\\images\\myimage.png");
ImageIO.write(bi, "png", f);

解决方案 »

  1.   

    你作为附件发送不就行了吗?
    像OUTLOOK,FOXMAIL等客户端邮件接收器都是可以显示图片的。
    mail.china.com 的邮件WEB 端也可以直接显示图片的。
    如果你要直接编程实现图片直接显示。
    网上有好多现成的资料,
    好像是<meta> 这儿一设置,再把附件内容读到当前页面就可以了。
      

  2.   

    那我如何才能把java代码生成的图形,表格等一个屏幕上的东西转换成image呢?
      

  3.   

    可以考虑把整个页面都截取下来
    生成html格式的文件
    然后再以附件的形式发过去
      

  4.   

    哈哈,用抓图,抓好了后,用html发送了 alt+prisc
      

  5.   

    用javaMail发送带图像的html文件:
    import java.util.Properties;
    import javax.mail.*;
    import javax.mail.internet.*;
    import javax.activation.*;public class HtmlImageExample {
      public static void main (String args[]) throws Exception {
        String host = args[0];
        String from = args[1];
        String to = args[2];
        String file = args[3];    // Get system properties
        Properties props = System.getProperties();    // Setup mail server
        props.put("mail.smtp.host", host);    // Get session
        Session session = Session.getDefaultInstance(props, null);    // Create the message
        Message message = new MimeMessage(session);    // Fill its headers
        message.setSubject("Embedded Image");
        message.setFrom(new InternetAddress(from));
        message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));    // Create your new message part
        BodyPart messageBodyPart = new MimeBodyPart();    // Set the HTML content, be sure it references the attachment
        String htmlText = "<H1>Hello</H1>" + 
          "<img src=\"cid:memememe\">";    // Set the content of the body part
        messageBodyPart.setContent(htmlText, "text/html");    // Create a related multi-part to combine the parts
        MimeMultipart multipart = new MimeMultipart("related");    // Add body part to multipart
        multipart.addBodyPart(messageBodyPart);    // Create part for the image
        messageBodyPart = new MimeBodyPart();    // Fetch the image and associate to part
        DataSource fds = new FileDataSource(file);
        messageBodyPart.setDataHandler(new DataHandler(fds));    // Add a header to connect to the HTML
        messageBodyPart.setHeader("Content-ID","<memememe>");    // Add part to multi-part
        multipart.addBodyPart(messageBodyPart);    // Associate multi-part with message
        message.setContent(multipart);    // Send message
        Transport.send(message);
      }
    }使用:
    java HtmlImageExample SMTP.Server from@address to@address filename
      

  6.   

    晕,将Onega同志和eviliw同志的代码结合起来就行了。在生成图形那部分要动点脑筋,但无非就是drawLine, drawString,drawImage等等的应用,自己调整就行了