public class ImageUtil {
public static final int RATIO = 0;
public static final int SAME = -1;
public static void resize(File src, File dest, int width, int height) throws IOException {
Image srcImg = null;
String suffix = src.getName().substring(src.getName().lastIndexOf('.')+1).toLowerCase();
if (suffix.equals("bmp") || suffix.equals("png") || suffix.equals("gif")) {
srcImg = ImageIO.read(src);
} else {
// BMP가 아닌 경우 ImageIcon을 활용해서 Image 생성
// 이렇게 하는 이유는 getScaledInstance를 통해 구한 이미지를
// PixelGrabber.grabPixels로 리사이즈 할때
// 빠르게 처리하기 위함이다.
srcImg = new ImageIcon(src.toURL()).getImage();
}
int srcWidth = srcImg.getWidth(null);
int srcHeight = srcImg.getHeight(null);
int destWidth = -1, destHeight = -1;
if (width == SAME) {
destWidth = srcWidth;
} else if (width > 0) {
destWidth = width;
}
if (height == SAME) {
destHeight = srcHeight;
} else if (height > 0) {
destHeight = height;
}
if (width == RATIO && height == RATIO) {
destWidth = srcWidth;
destHeight = srcHeight;
} else if (width == RATIO) {
double ratio = ((double)destHeight) / ((double)srcHeight);
destWidth = (int)((double)srcWidth * ratio);
} else if (height == RATIO) {
double ratio = ((double)destWidth) / ((double)srcWidth);
destHeight = (int)((double)srcHeight * ratio);
}
Image imgTarget = srcImg.getScaledInstance(destWidth, destHeight, Image.SCALE_SMOOTH);
int pixels[] = new int[destWidth * destHeight];
PixelGrabber pg = new PixelGrabber(imgTarget, 0, 0, destWidth, destHeight, pixels, 0, destWidth);
try {
pg.grabPixels();
} catch (InterruptedException e) {
throw new IOException(e.getMessage());
}
BufferedImage destImg = new BufferedImage(destWidth, destHeight, BufferedImage.TYPE_INT_RGB);
destImg.setRGB(0, 0, destWidth, destHeight, pixels, 0, destWidth);
ImageIO.write(destImg, "jpg", dest);
}
}
'분류 전체보기'에 해당되는 글 951건
- 2006.11.03 이미지 크기 변환시 품질 유지 방법
- 2006.11.03 정규 표현식을 사용하여 HTML 태그 제거하기
- 2006.11.02 JAVA 형식 맞추기
- 2006.11.02 자바에서 정상적으로 출력되는 한글 charset 찾기
- 2006.11.02 [JAVA] java.util.regex.Pattern 테스트
- 2006.11.01 에디트플러스 자바 컴파일/실행 설정
- 2006.11.01 JAVA Physical Address가져오기
- 2006.10.26 폴더 파일 리스트 보여주기
- 2006.10.25 javascript 에러 확인하기
- 2006.10.23 mssql 소수점 평균
HTML 태그는 < 로 시작해서 > 로 끝나고, 종료 태그의 경우는 </ 로 시작하거나 또는 />로 끝난다. 따라서, 다음과 같은 정규 표현식은 HTML 태그를 모두 포함하게 된다.
<(/)?([a-zA-Z]*)(\\s[a-zA-Z]*=[^>]*)?(\\s)*(/)?>
자바 1.4부터 String.repalceAll(String regex, String replacemenet) 메소드를제공하는데, 이 메소드는 문자열에서 regex의 정규 표현식에 일치하는 부분을 replacement로 취환해주는 기능을제공한다. 따라서, 특정 문자열에 HTML 태그를 제거하려면 위의 정규 표현식을 다음과 같이 적용하면 된다.
String text = "......";
String textWithoutTag = text.replaceAll("<(/)?([a-zA-Z]*)(\\s[a-zA-Z]*=[^>]*)?(\\s)*(/)?>", "");
import java.text.*;
String str = new DecimalFormat ( "###,###.###" ).format ( 123456.789 );
//결과 123,456.789
String str = new DecimalFormat ( "###,###.###;-"###,###.###" ).format ( -123456.789 );
//결과 -123,456.789
String str = new DecimalFormat ( "###,###.##" ).format ( 123.456 );
//결과 123.45
String str = new DecimalFormat ( "###.###%" ).format ( 0.123 );
//결과 12.3%
String str = new DecimalFormat ( "000000.000" ).format ( 123.45 );
//결과 000123.450
String str = new DecimalFormat ( "$###,###.###" ).format ( 12345.67 );
//결과 $12,345.67
String str = new DecimalFormat ( "\u005a###,###.###" ).format ( 12345.67 );
//결과 엔12,345.67
String str = new DecimalFormat ( "###,###.###" ).format ( 123456.789 );
//결과 123,456.789
String str = new DecimalFormat ( "###,###.###;-"###,###.###" ).format ( -123456.789 );
//결과 -123,456.789
String str = new DecimalFormat ( "###,###.##" ).format ( 123.456 );
//결과 123.45
String str = new DecimalFormat ( "###.###%" ).format ( 0.123 );
//결과 12.3%
String str = new DecimalFormat ( "000000.000" ).format ( 123.45 );
//결과 000123.450
String str = new DecimalFormat ( "$###,###.###" ).format ( 12345.67 );
//결과 $12,345.67
String str = new DecimalFormat ( "\u005a###,###.###" ).format ( 12345.67 );
//결과 엔12,345.67
java 1.4 버전 이상에서 사용 가능합니다.
/*
s2 의 문자열이 "소토로" 로 끝나는지 검사합니다.
s1 에서 ".*" 는 어떤 문자열이 와도 좋다는 것을 의미합니다.
s1 에서 마지막 "$" 는 문장의 끝을 의미합니다.
*/
import java.util.regex.*;
public class PatternTest2
{
public static void main(String[] args)
{
String s1 = ".*소토로$";
String s2 = "123소토로";
Pattern p = Pattern.compile(s1);
Matcher m = p.matcher(s2);
boolean b = m.matches();
System.out.println(b);
b = Pattern.matches(s1, s2);
System.out.println(b);
}
}
도구 -> 기본설정 -> 도구 - 사용자도구
우측화면에서 그룹 선택(1번부터 10번까지 있음) 원하는 번호 선택.
그룹이름 변경 -> Java로 해줌(이건 안해도 되는데 구분을 위해 해줌)
추가 -> 프로그램 {
메뉴제목 : Java Compile(사용자 마음대로)
명령 : 오른쪽 버튼을 클릭하여 javac파일을 찾아 선택해줌.
인수 : 오른쪽 버튼을 클릭하여 "파일이름" 선택
디렉토리 : 오른쪽 버튼을 클릭하여 "파일 디렉토리" 선택
하단의 "출력내용 캡쳐"에 체크
} 추가 -> 프로그램 {
메뉴제목 : Java Run(사용자 마음대로)
명령 : 오른쪽 버튼을 클릭하여 java파일을 찾아 선택해줌.
인수 : 오른쪽 버튼을 클릭하여 "확장자를 뺀 파일이름" 선택
디렉토리 : 오른쪽 버튼을 클릭하여 "파일 디렉토리" 선택
하단의 "출력내용 캡쳐"에 체크
우측화면에서 그룹 선택(1번부터 10번까지 있음) 원하는 번호 선택.
그룹이름 변경 -> Java로 해줌(이건 안해도 되는데 구분을 위해 해줌)
추가 -> 프로그램 {
메뉴제목 : Java Compile(사용자 마음대로)
명령 : 오른쪽 버튼을 클릭하여 javac파일을 찾아 선택해줌.
인수 : 오른쪽 버튼을 클릭하여 "파일이름" 선택
디렉토리 : 오른쪽 버튼을 클릭하여 "파일 디렉토리" 선택
하단의 "출력내용 캡쳐"에 체크
} 추가 -> 프로그램 {
메뉴제목 : Java Run(사용자 마음대로)
명령 : 오른쪽 버튼을 클릭하여 java파일을 찾아 선택해줌.
인수 : 오른쪽 버튼을 클릭하여 "확장자를 뺀 파일이름" 선택
디렉토리 : 오른쪽 버튼을 클릭하여 "파일 디렉토리" 선택
하단의 "출력내용 캡쳐"에 체크
<%@ page contentType="text/html; charset=euc-kr"%>
<%
String dir = "/home/test/images";
java.io.File f = new java.io.File(dir);
if(f.exists()){
String [] filelist = f.list();
for(int i=0;i<filelist.length;i++){
java.io.File f2 = new java.io.File(dir + "/" + filelist[i]);
out.println("<a href='/images/"+f2.getName()+"'>"+f2.getName()+"</a><BR>");
}
}
%>
f2.isDirectory()
out.println("<div class=\"folder\">"+f2.getName()+"<div>");
f2.isFile()
out.println("<div class=\"file\">"+f2.getName()+"<div>");
<%
String dir = "/home/test/images";
java.io.File f = new java.io.File(dir);
if(f.exists()){
String [] filelist = f.list();
for(int i=0;i<filelist.length;i++){
java.io.File f2 = new java.io.File(dir + "/" + filelist[i]);
out.println("<a href='/images/"+f2.getName()+"'>"+f2.getName()+"</a><BR>");
}
}
%>
f2.isDirectory()
out.println("<div class=\"folder\">"+f2.getName()+"<div>");
f2.isFile()
out.println("<div class=\"file\">"+f2.getName()+"<div>");
function funcName() {
try {
// 여기는 원하는 기능 추가
} catch(e){
for (x in e){
alert("e."+x+" == "+eval("e."+x));
}
}
}
select
ISNULL(CAST(ROUND(AVG(CAST(valuation1 as float)),2) AS NUMERIC(10,1)),0) AS valuation1
from table
NUMERIC(10,1)
위 소수점 한자리까지 표현
NUMERIC(10, 2) - 소주점 두자리
ISNULL(CAST(ROUND(AVG(CAST(valuation1 as float)),2) AS NUMERIC(10,1)),0) AS valuation1
from table
NUMERIC(10,1)
위 소수점 한자리까지 표현
NUMERIC(10, 2) - 소주점 두자리