<%@page import="java.sql.*,java.awt.image.*,java.awt.*,java.io.*,com.sun.image.codec.jpeg.JPEGCodec,com.sun.image.codec.jpeg.JPEGImageEncoder"%><% boolean picGood = true; String codeName = request.getParameter("codeName"); String hexCode = request.getParameter("hexCode"); response.addHeader("Content-Disposition", "inline; filename=\"pic.jpg\""); response.setContentType("image/gif"); byte[] buffer; OutputStream rOut = response.getOutputStream(); int xSize; int ySize; if( picGood ) { // 00481C01 xSize = Integer.parseInt(hexCode.substring(2,4), 16); ySize = Integer.parseInt(hexCode.substring(4,6), 16); BufferedImage image= new BufferedImage(xSize, ySize, BufferedImage.TYPE_BYTE_GRAY); Graphics g=image.getGraphics(); g.setColor(Color.white); g.fillRect(0,0,xSize,ySize); g.setColor(Color.black); hexCode = hexCode.substring(8); String binCode = ""; for( int i = 0; i < hexCode.length(); i+=2 ) { String dumBin = "00000000"; dumBin += Integer.toBinaryString(Integer.parseInt(hexCode.substring(i,i+2), 16)); binCode += dumBin.substring(dumBin.length()-8); } for(int i = 0; i < ySize; i++) { for(int j = 0; j < xSize; j++) { int pos = j+(i*xSize); if( binCode.substring(pos, pos+1).equals("1") ) g.drawLine( j, i, j, i ); } } //*****Send the Image***** response.addHeader("Content-Disposition", "inline; filename=\""+codeName+"\""); response.setContentType("image/jpeg"); JPEGImageEncoder encoder= JPEGCodec.createJPEGEncoder(rOut); encoder.encode(image); } else { BufferedImage image= new BufferedImage(100, 50, BufferedImage.TYPE_INT_RGB); Graphics g=image.getGraphics(); g.setColor(Color.white); g.drawString("BLANK/NO IMAGE", 2, 30); //*****Send the Image***** response.addHeader("Content-Disposition", "inline; filename=\"pic.jpg\""); response.setContentType("image/jpeg"); JPEGImageEncoder encoder= JPEGCodec.createJPEGEncoder(rOut); encoder.encode(image); } //rOut.write(buffer); rOut.close(); %>