본문 바로가기
JAVA

[ JAVA ] 이미지 사이즈 얻어내기 예제

by 정윤재 2008. 10. 18.

자바 스크립트 객체로 이미지를 만들어 내서 동적 HTML을 적용해서

이미지를 onLoad()로 크기를 자동으로 적용 시켜줄경우 동적 HTML을

브라우저 버전이 낮아서 안먹을때가 있습니다.

그래서 해결책이 자바로 이미지 객체를 만들어서 사이즈를 구하는거죠.

자바 스크립트야 클아이언트 단에서 구하는거라 안먹을 수 있지만

자바는 서버단에서 돌아가기 때문에 그런 서버의 vm이 문제가

생기지 않는 이상 걱정할 것이 없죠.

//예제들어갑니다.

imageSize.jsp

<%@ page language="java" import="com.*" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%
 imageDAO dao=new imageDAO();
 imageDTO dto=dao.imageSizeCheck(request);
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "

http://www.w3.org/TR/html4/loose.dtd

">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%=dto.getWidth() %><br>
<%=dto.getHeight() %><br>
<img src="c:/a.jpg" width="<%=dto.getWidth() %>" height="<%=dto.getHeight() %>">
</body>
</html>

/////////////////////////////////////////////////

imageDAO.java

package com;
import javax.servlet.http.HttpServletRequest;
import java.awt.*;
import java.awt.image.BufferedImage;
import javax.swing.*;
import java.io.*;
import javax.imageio.ImageIO;

 

public class imageDAO{
 public imageDTO imageSizeCheck(HttpServletRequest  request){
//서버의 root 경로를 이용하려고 request를 가져왔습니다.
//여기서는 이용하지 않았지만 실전에선 분명히 사용해야 할 것입니다.

  imageDTO dto=new imageDTO();
 //return값이 2개 이기 때문에 dto객체로 넘기려고 합니다.
  try{
   
   BufferedImage bi = ImageIO.read(new File("c:\\a.jpg"));
  //일반적인 이미지 객체의 경우 getWidth메소드와 getHeight메소드가 틀립니다. 
  //파라미터가 있어 쓰기 곤란하므로 BufferedImage 로 쓰시는게 맞는것 같습니다.
   int width=bi.getWidth();
   int height=bi.getHeight();
   
    
   dto.setWidth(width);
   dto.setHeight(height);

 

  }catch(Exception e){e.printStackTrace();}
  return dto;
 }
 
}

//////////////////////////////////////////////////////
imageDTO.java
//두개의 값을 넘겨야 하기 때문에 dto 객체를 이용했습니다.

package com;
public class imageDTO {
 private int width;
 private int height;
 public int getWidth() {
  return width;
 }
 public void setWidth(int width) {
  this.width = width;
 }
 public int getHeight() {
  return height;
 }
 public void setHeight(int height) {
  this.height = height;
 }
}

'JAVA' 카테고리의 다른 글

자바 파일 복사 2  (0) 2008.11.16
자바 파일 복사 1  (0) 2008.11.16
자바 제네릭 관련 정리  (16) 2008.11.12
자바 문자열 관련 정리  (0) 2008.11.12
[ JAVA ] JAVA로 DB 컬럼 정보 가져오기  (4) 2008.10.18

댓글