다른 서버에 있는 이미지의 사이즈를 빠르고 효율적으로 알아내는 방법이 필요합니다.

yosikky의 이미지

안녕하세요
내년이면 2년차인데 아직도 신입티를 벗어나지 못하고 있는 초짜입니다..

저희팀에서 서비스하고 있는 웹서버에는 좀 무식한 기능이 있습니다..
뭐냐하면 xml로 클라이언트에게 데이터를 내려다 줄때 img링크가 있으면 그것의 사이즈를 보고 최소사이즈 이하이거나 최대사이즈 이상이면 제거를 하는 것이죠..

현재는 이것을 구현하기 위해

    		BufferedImage bfimg = null;
    		try {
    			URL url = new URL(distUrl);
    			bfimg = ImageIO.read(url);
    		} catch (MalformedURLException e) {
    			bfimg = null;
    		} catch (IOException e) {
    			bfimg = null;
    		} catch (Exception e) {
    			bfimg = null;
    		}
 
    		if(bfimg == null) {
    			return null;
    		}
 
    		int srcWid = bfimg.getWidth();
    		int srcHei = bfimg.getHeight();
    		int maxWid = Integer.parseInt(width);
    		int maxHei = Integer.parseInt(height);
    		if( srcWid < theLeastWidth || srcHei < theLeastHeight || srcWid > maxWid || srcHei > maxHei ) {
    			return null;
    		}

이렇게 해두었답니다.. 그치만 저렇게 버퍼에 다 로드하지 않고 사이즈만 쏙 빼오는.. 즉 mime header같은거만 보고 판단하는 좀더 빠르고 효율적인 방법이 없을까요?

부탁드립니다...ㅠㅠ

yosikky의 이미지

다른 서버에서 일을 분담하도록 구현하는 것은 현재 준비중입니다..
지금 당장에 좀 급해서 말이죠..

오호호호호호호홋!!!!

송효진의 이미지

분명히 첫 4096 bytes 내에 크기정보가 다 있을겁니다.
gif, jpeg 정도만 헤더분석을 하시면 될것 같네요.

rfc gif, rfc jpeg 로 구글링하면 금새 나올겁니다.
크기만이니까 구현도 금방 하실거에요.

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~
http://xenosi.de/

송효진의 이미지

생각해보니까 http 헤더에 파일크기 정보가 있네요.
허용 최대크기의 jpeg 용량을 대충 예상해서 그것보다 큰것은
그림크기 알아보기 전부터 잘라버리면 어떨까요?

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~
http://xenosi.de/

yosikky의 이미지

가로사이즈 제한과 세로사이즈 제한이 따로따로 있어요...
그러니깐 가로사이즈가 최소 100 최대 500 세로사이즈가 최소 100 최대 250..
이런식이라서..

단순 파일크기만으로는 한쪽 사이즈가 특이하게 작다거나 크다거나 하는 상황을 파악하기 힘든 문제가 있습니다..
결국엔 적정(효진님 말씀대로라면 4096byte)사이즈만큼만 스트림으로 받아와서 이미지객체로 로드하지 않고 사이즈만 파악해야 할듯 합니다...

의외로 jpg나 gif가 깔끔하게 정리된건 없네요 ㅠㅠ;;
잘 찾아봐야 할듯.. 감사합니다 ㅎ

오호호호호호호홋!!!!

송효진의 이미지

금새 나오길래 링크 안걸었는데;;;
gif 는 여러장 들어갈 수 있기 때문에 block 이 나누어져서 조금 복잡하겠네요.
http://www.nikis.de/181/gif89a.htm

jpeg 은 iso 였네요;;; 예전에 comment 바꾸느라 찾아봤을 때 쉽게 나와서 너무 쉽게 적었나봅니다.;;
http://www.jpeg.org/public/jfif.pdf

http 헤더 크기 얘기는 4096 조차 안받아버릴 크기라면 애초에 잘라도 되겠다는거죠.^^

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~
http://xenosi.de/

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.