이미지 포함 업로드시 이미지 크기 비율 적용은 어떻게? 정보
이미지 포함 업로드시 이미지 크기 비율 적용은 어떻게?본문

위 캡춰 화면에서 보시다 시피 이미지를 포함하여 게시판에 글을 올리면,
이미지 리사이즈를 할 수 있게 되어있는데,
이게 초보에게는 조금 어려울 수가 있겠더라고요....
디카에서 넘어오는 사진의 크기가 커서 리사이즈를 한다고 했을 때,
가로, 세로 모두 자율적으로 조정을 할수 있다 보니,
왠만큼 이해가 되는 사람은 괜찮은데,
그렇지 않은 사람은 1024*768 짜리를 올릴때,
1024*10.... 이런식으로 당황스런 리사이즈가 될 수도 있겠더라고요....
옵션을 주거나, 아니면, 어느 한 쪽의 크기가 정해지면,
비율에 맞춰서 다른쪽 크기가 제시 되던가 해야 될텐데....
뭐 좋은 방법이나, 그렇게 적용된 코드가 없을까요???
고수님들~~~~ 부탁 함 드려 봅니당~~~
포인트는 가진게 없어서 딸랑 1천.... ㅎㅎㅎ
댓글 전체

가로값만 주면 세로값을 비율에 맞춰 구할수 있는 방법이 있겠네요
예전에 만들었던건데...
$imgWidth = 100;//이미지 가로 최대크기
$imgHeight = 100;//이미지 세로 최대크기
if(preg_match("/(\.jpg|\.jpeg|\.gif|\.png)$/i", $data[file_name1])){
$img_size = GetImageSize("$data[file_name1]");
if($img_size[0] >= $img_size[1]) {
$imgper = $imgWidth/$img_size[0];
$imgHeight = $img_size[1]*$imgper;
}else{
$imgper = $imgHeight/$img_size[1];
$imgWidth = $img_size[0]*$imgper;
}
}
참고해서 써보세요 ㅎ;
참고로 요건 이미지 가로의 최대크기를 지정해두면 비율에 맞춰서 자동으로 줄여주는 방법입니다.
이걸 해두면 이미지 크기를 지정해둘 필요 없이 자동으로 지정... 됩니다 ㅡ_ㅡ;;(강제로 지정 안해두는 한;)
예전에 만들었던건데...
$imgWidth = 100;//이미지 가로 최대크기
$imgHeight = 100;//이미지 세로 최대크기
if(preg_match("/(\.jpg|\.jpeg|\.gif|\.png)$/i", $data[file_name1])){
$img_size = GetImageSize("$data[file_name1]");
if($img_size[0] >= $img_size[1]) {
$imgper = $imgWidth/$img_size[0];
$imgHeight = $img_size[1]*$imgper;
}else{
$imgper = $imgHeight/$img_size[1];
$imgWidth = $img_size[0]*$imgper;
}
}
참고해서 써보세요 ㅎ;
참고로 요건 이미지 가로의 최대크기를 지정해두면 비율에 맞춰서 자동으로 줄여주는 방법입니다.
이걸 해두면 이미지 크기를 지정해둘 필요 없이 자동으로 지정... 됩니다 ㅡ_ㅡ;;(강제로 지정 안해두는 한;)
해몽님 답변 감사합니다....
좋은 방법입니다....
그러나,,,
제가 희망하는 것은,
예를 들어 3008*2000의 이미지를 업로드 한다고 가정해보죠.
이때, 용량은 Jpeg 기준으로(압축률에 따라 다르겠지만) 대략 2.89Mb가 나옵니다.
이 파일을 이미지 리사이즈 없이 그냥 오릴 경우
보통 게시판의 이미지를 보여주는 공간이 600~1000 사이를 사용하는 것을 생각해 보면,
테이블 공간 대비 이미지가 크므로 브라우저에서 강제로 작은 크기로 보여주겠죠.
이때 서버의 저장공간의 손실과 전송량의 손실이 발생합니다.
물론 어느정도 컴퓨터 활용 방법에 익숙한 사람이면, 각종 유틸을 이용해 리사이즈 하고
해서 올리겠지만서도,
거의 컴맹 수준의 유저라면 힘들기 때문에 자동화 할수 있는 방안을 고민하게 됩니다.
싸이월드 처럼 가로폭이나 용량을 기준으로 제한을 하게 되죠.
이 경우 주로 사용하는 방법이 서버단에서 리사이즈 엔진을 돌리는 방법을 사용하죠.
흔히 사용하는 섬네일이나 그런것 생각 하시면 되겠습니다.
그누보드에서 제공하는 방식은,
그보다 조금 적극적으로 리사이즈를 할 수 있는 방법인데,
가로 세로 모두 사용자가 지정할수 있게 되어 있더라고요...
그래서 유저가 오타들 내거나, 아니면 개념 상실이거나 하면,
3008*2000 의 이미지를 반 사이즈로 줄인다 하고는
1504*1000이 아닌 1504*100 이런 사이즈로 하는 경우도 생기게 됩니다.
정배율로 하는 경우는 그나마 조금 주의를 기울이면 별 문제가 안생기겠지만,
2560*1920 사이즈의 경우에는 계산기 꺼내서 해야된다는.....
이럴때, 어느 한쪽의 숫자를 줄이고 싶은 숫자로 지정할 때,
나머지 한쪽의 숫자를 그 비율에 맞춰 제시, 혹은 강제로 지정 해 주는 방법을 찾고 있는 것입니다.
한쪽만 입력 받아서 강제로 하는 방법도 최후에는 생각해 보고 있지만,
제일 좋은것은 사용자가 미리 자기가 원하는 사이즈의 이미지인지 확인하게 하는 것이 좋을듯 해서요...
물론 가능하다면 용량까지 보여줄수 있으면 더욱 좋겠지요.
이 경우 문제는, 어느 한쪽 크기를 입력받았을 때, 원본 이미지의 크기에 입력된 크기를 나누어
나온 나머지를 원본의 다른쪽 이미지의 크기 선택 란에 리플레쉬 해 줘야 한다는 것이겠지요.
반대로 다른쪽 숫자가 먼저 지정되거나 수정이 되면, 나머지 한쪽을 리플레쉬 해주는 것도 있겠지만,
이경우는 예외로 하고,
통상 가로사이즈가 문제니까,
가로 기준을 지정하면, 그에 따른 세로 사이즈를 자동으로 보여주고(추가로 용량도 있으면 더 좋고~)
하는 방안을 찾고 있습니당~~~~~
에공.... 설명이 무지 장황하네요....
좋은 방법입니다....
그러나,,,
제가 희망하는 것은,
예를 들어 3008*2000의 이미지를 업로드 한다고 가정해보죠.
이때, 용량은 Jpeg 기준으로(압축률에 따라 다르겠지만) 대략 2.89Mb가 나옵니다.
이 파일을 이미지 리사이즈 없이 그냥 오릴 경우
보통 게시판의 이미지를 보여주는 공간이 600~1000 사이를 사용하는 것을 생각해 보면,
테이블 공간 대비 이미지가 크므로 브라우저에서 강제로 작은 크기로 보여주겠죠.
이때 서버의 저장공간의 손실과 전송량의 손실이 발생합니다.
물론 어느정도 컴퓨터 활용 방법에 익숙한 사람이면, 각종 유틸을 이용해 리사이즈 하고
해서 올리겠지만서도,
거의 컴맹 수준의 유저라면 힘들기 때문에 자동화 할수 있는 방안을 고민하게 됩니다.
싸이월드 처럼 가로폭이나 용량을 기준으로 제한을 하게 되죠.
이 경우 주로 사용하는 방법이 서버단에서 리사이즈 엔진을 돌리는 방법을 사용하죠.
흔히 사용하는 섬네일이나 그런것 생각 하시면 되겠습니다.
그누보드에서 제공하는 방식은,
그보다 조금 적극적으로 리사이즈를 할 수 있는 방법인데,
가로 세로 모두 사용자가 지정할수 있게 되어 있더라고요...
그래서 유저가 오타들 내거나, 아니면 개념 상실이거나 하면,
3008*2000 의 이미지를 반 사이즈로 줄인다 하고는
1504*1000이 아닌 1504*100 이런 사이즈로 하는 경우도 생기게 됩니다.
정배율로 하는 경우는 그나마 조금 주의를 기울이면 별 문제가 안생기겠지만,
2560*1920 사이즈의 경우에는 계산기 꺼내서 해야된다는.....
이럴때, 어느 한쪽의 숫자를 줄이고 싶은 숫자로 지정할 때,
나머지 한쪽의 숫자를 그 비율에 맞춰 제시, 혹은 강제로 지정 해 주는 방법을 찾고 있는 것입니다.
한쪽만 입력 받아서 강제로 하는 방법도 최후에는 생각해 보고 있지만,
제일 좋은것은 사용자가 미리 자기가 원하는 사이즈의 이미지인지 확인하게 하는 것이 좋을듯 해서요...
물론 가능하다면 용량까지 보여줄수 있으면 더욱 좋겠지요.
이 경우 문제는, 어느 한쪽 크기를 입력받았을 때, 원본 이미지의 크기에 입력된 크기를 나누어
나온 나머지를 원본의 다른쪽 이미지의 크기 선택 란에 리플레쉬 해 줘야 한다는 것이겠지요.
반대로 다른쪽 숫자가 먼저 지정되거나 수정이 되면, 나머지 한쪽을 리플레쉬 해주는 것도 있겠지만,
이경우는 예외로 하고,
통상 가로사이즈가 문제니까,
가로 기준을 지정하면, 그에 따른 세로 사이즈를 자동으로 보여주고(추가로 용량도 있으면 더 좋고~)
하는 방안을 찾고 있습니당~~~~~
에공.... 설명이 무지 장황하네요....