<div>Spring MVC 메소드에요</div> <div><br></div> <div>실제로는 날씨api도 파싱하고 현재시간도 넣고 많이했는데 기본적인 틀만 올려요.</div> <div><br></div> <div><br></div> <div><br></div> <div>File font1f=null;</div> <div> <div>@RequestMapping(value = "/#주소#", method = RequestMethod.GET)</div> <div>public ResponseEntity<byte[]> img(HttpServletRequest request,HttpServletResponse response) throws IOException, FontFormatException {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>String filename="#리턴할파일명#.png";</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>//입력부분</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>ServletContext context = request.getSession().getServletContext();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>InputStream is=request.getSession().getServletContext().getResourceAsStream("#수정할 png 이미지 경로#");</div> <div><span class="Apple-tab-span" style="line-height:21.600000381469727px;font-size:9pt;white-space:pre;"> </span><span style="line-height:21.600000381469727px;font-size:9pt;">InputStream font1is=request.getSession().getServletContext().getResourceAsStream("#폰트경로#/NanumPen.ttf");</span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(font1f==null){</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span> <span class="Apple-tab-span" style="white-space:pre;"> </span>font1f=File.createTempFile("font1t", ".tmp");</div> <div><span class="Apple-tab-span" style="font-size:9pt;line-height:1.5;white-space:pre;"> </span><span style="font-size:9pt;line-height:1.5;">FileOutputStream fos=new FileOutputStream(font1f);</span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>IOUtils.copy(font1s, fos);</div> <div><span class="Apple-tab-span" style="font-size:9pt;line-height:1.5;white-space:pre;"> </span><span style="font-size:9pt;line-height:1.5;">fos.close();</span></div> <div><span class="Apple-tab-span" style="font-size:9pt;line-height:1.5;white-space:pre;"> </span><span style="font-size:9pt;line-height:1.5;">}</span></div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>BufferedImage img = ImageIO.read(is);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>is.close();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>//그래픽 시작 초기화</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>Graphics2D g2d=img.createGraphics();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>g2d.setRenderingHint(</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span> RenderingHints.KEY_TEXT_ANTIALIASING,</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span> RenderingHints.VALUE_TEXT_ANTIALIAS_ON);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>Font font = Font.createFont(Font.TRUETYPE_FONT, font1if);</div> <div><span class="Apple-tab-span" style="font-size:9pt;line-height:1.5;white-space:pre;"> </span><span style="font-size:9pt;line-height:1.5;">font=font.deriveFont(20.0f);</span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>g2d.setFont(font);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>g2d.setPaint(Color.white);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>//본격 시작</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>String ex = "이미지에 추가할 예제스트링";</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>g2d.drawString(ex, #x좌표#, #y좌표#);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><br></div> <div><br></div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>//출력부분</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>ByteArrayOutputStream baos = new ByteArrayOutputStream();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>ImageIO.write( img, "png", baos );</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>baos.flush();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>byte[] image = baos.toByteArray();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>baos.close();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>final HttpHeaders headers = new HttpHeaders();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>headers.set("Content-Disposition", "inline; filename="+ new String(filename.getBytes("UTF-8"), "ISO-8859-1"));</div> <div> headers.setContentType(MediaType.IMAGE_PNG);</div> <div> return new ResponseEntity<byte[]>(image, headers, HttpStatus.OK);</div> <div>}</div></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.