java实现图片用Excel画出来

  

本文实例为大家分享了java用Excel将图片画出来的具体代码,供大家参考,具体内容如下

  

能够将任何图片在excel上利用单元格背景完整的描绘出来。

  

像网络上出现的用excel画出超级玛丽等等,各种图片都能在excel上“画”出来。

  

图片我没有经过特殊处理,所以转换的图片不能太大,有多大的图片就要有多少的单元格。如640 * 480就有307200的单元格。

  

如要转换的图片:

  

癹ava实现图片用Excel画出来"

  

转换后在excel中的效果:

  

癹ava实现图片用Excel画出来"

  

没多大意义练练手:

        进口java.awt.Color;   进口java.awt.image.BufferedImage;   进口java.io.File;   进口java.io.IOException;   进口java.util.Locale;      进口javax.swing.ImageIcon;      进口jxl.Workbook;   进口jxl.WorkbookSettings;   进口jxl.format.Colour;   进口jxl.read.biff.BiffException;   进口jxl.write.Label;   进口jxl.write.WritableCellFormat;   进口jxl.write.WritableSheet;   进口jxl.write.WritableWorkbook;      公共类辅助{   私人BufferedImage getBufferedImage(字符串filepath)   {   ImageIcon imgicon=new ImageIcon (filepath);   BufferedImage BufferedImage=new BufferedImage (imgicon.getIconWidth (), imgicon.getIconHeight (), BufferedImage.TYPE_INT_RGB);      bufferedImage.createGraphics () .drawImage (imgicon.getImage (), 0, 0, null);   返回bufferedImage;      }      私人色彩getNearestColour(颜色awtColor) {   颜色颜色=零;   颜色=[]颜色Colour.getAllColours ();   如果((颜色!=null),,(颜色。长度比;0)){   颜色crtColor=零;   int [] rgb=零;   int diff=0;   int minDiff=999;      for (int i=0;我& lt;colors.length;我+ +){   crtColor=颜色(我);   rgb=new int [3];   .getRed rgb [0]=crtColor.getDefaultRGB () ();   .getGreen rgb [1]=crtColor.getDefaultRGB () ();   .getBlue rgb [2]=crtColor.getDefaultRGB () ();      diff=数学。abs (rgb [0] - awtColor.getRed ())   +数学。abs (rgb [1] - awtColor.getGreen ())   +数学。abs (rgb [2] - awtColor.getBlue ());      如果(diff & lt;minDiff) {   minDiff=diff;   颜色=crtColor;   }   }   }   如果(颜色==null)   颜色=Colour.BLACK;   返回颜色;   }   convertFromImage公共空间exec(字符串,字符串createxls)抛出异常   {      WorkbookSettings ws=new WorkbookSettings ();   ws。setLocale(新语言环境(“en”、“en”));   WritableWorkbook工作簿=工作簿。createWorkbook(新文件(createxls) ws);   WritableSheet s2=工作簿。createSheet("图片",0);   BufferedImage buffimage=getBufferedImage (convertFromImage);   int宽度=buffimage.getWidth ();   int嗨!=buffimage.getHeight ();   for (int i=0; i<宽度;我+ +)   {   for (int h=0; h<嗨!;h + +)   {   WritableCellFormat greyBackground=new WritableCellFormat ();   c=新颜色(buffimage。getRGB(我、h));         greyBackground。setBackground (getNearestColour (c));      标签lr=新标签(h,我”“greyBackground);      s2.addCell (lr);   }      }//写入Excel对象   workbook.write ();         workbook.close ();      }/* *   * @param arg游戏   * @throws IOException   * @throws BiffException   */公共静态void main (String [] args){抛出异常   助手辅助=new助手();      System.out.println(“输入的图片:“+ args [0]);   System.out.println(“输出的excel:“+ args [1]);   System.out.println(“转换开始”);//转换执行的方法参数参数[0]输入的图片路径参数[1]输出的excel路径//帮手。exec (“mslogo.jpg”、“1. xls”);   helper.exec (args [0], arg游戏[1]);   }      }      

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

java实现图片用Excel画出来