갤러리. 슬라이드. 썸네일 이미지의 가로 세로 원본비율유지 최대크기형태 표현 최종 정리 정보
갤러리. 슬라이드. 썸네일 이미지의 가로 세로 원본비율유지 최대크기형태 표현 최종 정리관련링크
본문
안녕하세요?
그누를 열흘째 접하면서 많은 도움만 받고 한 것이 없어 고민하던차
이미지의 표현을 가로세로를 변하지 않고 최대치로 표현하게 하는 방법을 올립니다.
여기에도 많은 분들이 아주 좋은 로직을 올려 주셔서 정확히 표현이 되지만
모두 정사각형안에서 가로를 맞추고 세로를 맞추는 결과가 되어 그림을 좀더 크게 볼 수 있는 기회를 잃게 됩니다.
보통 그림보기창을 만들면 세로보다 가로가 긴 새창을 만들게 되고
또한 일반 이미지 또한 가로가 긴 이미지가 많은데 가로를 맟추고 그에 따라 세로를 맞추게 되면
대부분의 그림들이 정사각형안에서 가로 세로를 맞추게 되어 좀 더 시원하게 볼 수 없습니다.
크기가 고정된 틀안에서 가로세로를 유지하면서 최대한 크게 보일 수 있는 로직입니다
현재까지는 가장 로직을 정확히 고안해 주신분은
Ted 님이신 것 같습니다
http://sir.co.kr/bbs/tb.php/g4_qa/12042
Ted 님의 로직을 보고 힌트를 얻었습니다^^
보람찬님의 슬라이더를 이용해 설명해 드리겠습니다
보람찬님 감사히 잘 쓰겠습니다.^^
데이콤의 아이모리와 보람찬님의 슬라이더를 비교해 보면
보람찬님 것이 훨씬 좋은 것 같습니다.
음악 선별도 너무 잘하시는 것 같습니다.
그런데 사진을 비교해 보면 같은 창이라도 아이모리에서 더 이미지가 크게 표현됩니다.
물론 가로세로의 비율은 원본 그대로 유지하면서 입니다
아이모리창은 그 비율이 좀 불안해 보입니다....
물룬 아주 많이 연구한 것 같습니다.
잘 만들었습니다
저는 다른 방법을 강구했습니다.
의외로 깔끔하게 로직이 만들어 집니다.
아래는 우리가 이미지보기 창을 가로 700 세로 500으로 했을 경우 입니다.
창의 크기가 다르다면 이 수치만 변경하면 됩니다
이렇게 하면 어떤 창에서든 이미지를 가로 세로 비율을 유지하면서 제일 크게 표현할 수 있습니다
이미지창이든 슬라이더든 썸네일이든 다 적용하면 됩니다
if ($size[0] < 700){ //가로가 700보다 작을때
if ($size[1] > 500){ //세로가 500보다 크면
$size1 = 500 ; //세로를 500에 맞춘다
$size0 = ceil( $size[0] * ( 500 / $size[1] ) ); //세로가 줄어든 비율에 따라 가로를 줄인다
} else { //세로가 500보다 안크면
$size1 = $size[1]; //세로는 원래 사이즈
$size0 = $size[0]; //가로도 원래 사이즈- 가로가 700보다 작은경우내 이므로
}
}else{ //가로가 700이상일때
if (( $size[1] / $size[0] ) > (500 / 700)){ // 세로/가로 가 위에서 정한 창의비율 500/700 보다 크면
$size1 = 500 ; //세로를먼저 500에 맞추고
$size0 = ceil( $size[0] * ( 500 / $size[1] ) ); //가로를 그 줄어든 비율에 따라 맞춘다
}else{ //세로/가로 가 위에서 정한 창의비율 500/700 보다 작으면
$size0 = 700 ; //가로를 700에 맞추고
$size1 = ceil( $size[1] * ( 700 / $size[0] ) ); //세로를 그 줄어든 비율에 따라 맞춘다
}
}
모든 경우가 위 로직에 다 들어갑니다
샘플은 위 링크에서 슬라이드쇼 버튼을 누르시면 됩니다
믾은 도움되시기 바랍니다.
그누를 열흘째 접하면서 많은 도움만 받고 한 것이 없어 고민하던차
이미지의 표현을 가로세로를 변하지 않고 최대치로 표현하게 하는 방법을 올립니다.
여기에도 많은 분들이 아주 좋은 로직을 올려 주셔서 정확히 표현이 되지만
모두 정사각형안에서 가로를 맞추고 세로를 맞추는 결과가 되어 그림을 좀더 크게 볼 수 있는 기회를 잃게 됩니다.
보통 그림보기창을 만들면 세로보다 가로가 긴 새창을 만들게 되고
또한 일반 이미지 또한 가로가 긴 이미지가 많은데 가로를 맟추고 그에 따라 세로를 맞추게 되면
대부분의 그림들이 정사각형안에서 가로 세로를 맞추게 되어 좀 더 시원하게 볼 수 없습니다.
크기가 고정된 틀안에서 가로세로를 유지하면서 최대한 크게 보일 수 있는 로직입니다
현재까지는 가장 로직을 정확히 고안해 주신분은
Ted 님이신 것 같습니다
http://sir.co.kr/bbs/tb.php/g4_qa/12042
Ted 님의 로직을 보고 힌트를 얻었습니다^^
보람찬님의 슬라이더를 이용해 설명해 드리겠습니다
보람찬님 감사히 잘 쓰겠습니다.^^
데이콤의 아이모리와 보람찬님의 슬라이더를 비교해 보면
보람찬님 것이 훨씬 좋은 것 같습니다.
음악 선별도 너무 잘하시는 것 같습니다.
그런데 사진을 비교해 보면 같은 창이라도 아이모리에서 더 이미지가 크게 표현됩니다.
물론 가로세로의 비율은 원본 그대로 유지하면서 입니다
아이모리창은 그 비율이 좀 불안해 보입니다....
물룬 아주 많이 연구한 것 같습니다.
잘 만들었습니다
저는 다른 방법을 강구했습니다.
의외로 깔끔하게 로직이 만들어 집니다.
아래는 우리가 이미지보기 창을 가로 700 세로 500으로 했을 경우 입니다.
창의 크기가 다르다면 이 수치만 변경하면 됩니다
이렇게 하면 어떤 창에서든 이미지를 가로 세로 비율을 유지하면서 제일 크게 표현할 수 있습니다
이미지창이든 슬라이더든 썸네일이든 다 적용하면 됩니다
if ($size[0] < 700){ //가로가 700보다 작을때
if ($size[1] > 500){ //세로가 500보다 크면
$size1 = 500 ; //세로를 500에 맞춘다
$size0 = ceil( $size[0] * ( 500 / $size[1] ) ); //세로가 줄어든 비율에 따라 가로를 줄인다
} else { //세로가 500보다 안크면
$size1 = $size[1]; //세로는 원래 사이즈
$size0 = $size[0]; //가로도 원래 사이즈- 가로가 700보다 작은경우내 이므로
}
}else{ //가로가 700이상일때
if (( $size[1] / $size[0] ) > (500 / 700)){ // 세로/가로 가 위에서 정한 창의비율 500/700 보다 크면
$size1 = 500 ; //세로를먼저 500에 맞추고
$size0 = ceil( $size[0] * ( 500 / $size[1] ) ); //가로를 그 줄어든 비율에 따라 맞춘다
}else{ //세로/가로 가 위에서 정한 창의비율 500/700 보다 작으면
$size0 = 700 ; //가로를 700에 맞추고
$size1 = ceil( $size[1] * ( 700 / $size[0] ) ); //세로를 그 줄어든 비율에 따라 맞춘다
}
}
모든 경우가 위 로직에 다 들어갑니다
샘플은 위 링크에서 슬라이드쇼 버튼을 누르시면 됩니다
믾은 도움되시기 바랍니다.
추천
0
0
댓글 10개

굿 이왕이면 스킨까지 링크주소좀 ^^
슬라이드쇼에서
$size = getimagesize($images_);
if ($size[0] >= 600) { $size0 = 600; } else { $size0 = $size[0]; }
if ($size[1] >= 450) { $size1 = 450; } else { $size1 = $size[1]; }
이 부분에서 TMT님이 말씀하신대로 if문 부분을 고대로 바꿔서 숫자 바꿔치기했는데... 안되네요... -_-;;
$size = getimagesize($images_);
if ($size[0] >= 600) { $size0 = 600; } else { $size0 = $size[0]; }
if ($size[1] >= 450) { $size1 = 450; } else { $size1 = $size[1]; }
이 부분에서 TMT님이 말씀하신대로 if문 부분을 고대로 바꿔서 숫자 바꿔치기했는데... 안되네요... -_-;;
주영규님, 창의 크기를 600*450으로 하셨군요
$size = getimagesize($images_);
//if ($size[0] >= 600) { $size0 = 600; } else { $size0 = $size[0]; }
//if ($size[1] >= 450) { $size1 = 450; } else { $size1 = $size[1]; }
윗 두줄을 지우고 아래를 그대로 복사해 넣으면 됩니다
테스트했습니다
//전혀 다른 각도에서 생각해보자 정사각형방이 아니면 가로가 긴것은 좀더 크게보일 수 있어야 한다 by hp
if ($size[0] < 600){ //가로가 600보다 작을때
if ($size[1] > 450){ //세로가 450보다 크면
$size1 = 450 ; //세로를 450에 맞춘다
$size0 = ceil( $size[0] * ( 450 / $size[1] ) ); //세로가 줄어든 비율에 따라 가로를 줄인다
} else { //세로가 450보다 안크면
$size1 = $size[1]; //세로는 원래 사이즈
$size0 = $size[0]; //가로도 원래 사이즈- 가로가 600보다 작은경우내 이므로
}
}else{ //가로가 600이상일때
if (( $size[1] / $size[0] ) > (450 / 600)){ // 세로/가로 가 위에서 정한 창의비율 450/600 보다 크면
$size1 = 450 ; //세로를먼저 500에 맞추고
$size0 = ceil( $size[0] * ( 450 / $size[1] ) ); //가로를 그 줄어든 비율에 따라 맞춘다
}else{ //세로/가로 가 위에서 정한 창의비율 450/600 보다 작으면
$size0 = 600 ; //가로를 600에 맞추고
$size1 = ceil( $size[1] * ( 600 / $size[0] ) ); //세로를 그 줄어든 비율에 따라 맞춘다
}
}
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
카이루님
스킨은 보람찬님의 동의를 얻은 후 공개할 에정입니다
보람찬님의 스킨을 잘 쓰고 있습니다.
제 맘대로 변경했으니 동의를 구해야 할 것 같아서요^^
$size = getimagesize($images_);
//if ($size[0] >= 600) { $size0 = 600; } else { $size0 = $size[0]; }
//if ($size[1] >= 450) { $size1 = 450; } else { $size1 = $size[1]; }
윗 두줄을 지우고 아래를 그대로 복사해 넣으면 됩니다
테스트했습니다
//전혀 다른 각도에서 생각해보자 정사각형방이 아니면 가로가 긴것은 좀더 크게보일 수 있어야 한다 by hp
if ($size[0] < 600){ //가로가 600보다 작을때
if ($size[1] > 450){ //세로가 450보다 크면
$size1 = 450 ; //세로를 450에 맞춘다
$size0 = ceil( $size[0] * ( 450 / $size[1] ) ); //세로가 줄어든 비율에 따라 가로를 줄인다
} else { //세로가 450보다 안크면
$size1 = $size[1]; //세로는 원래 사이즈
$size0 = $size[0]; //가로도 원래 사이즈- 가로가 600보다 작은경우내 이므로
}
}else{ //가로가 600이상일때
if (( $size[1] / $size[0] ) > (450 / 600)){ // 세로/가로 가 위에서 정한 창의비율 450/600 보다 크면
$size1 = 450 ; //세로를먼저 500에 맞추고
$size0 = ceil( $size[0] * ( 450 / $size[1] ) ); //가로를 그 줄어든 비율에 따라 맞춘다
}else{ //세로/가로 가 위에서 정한 창의비율 450/600 보다 작으면
$size0 = 600 ; //가로를 600에 맞추고
$size1 = ceil( $size[1] * ( 600 / $size[0] ) ); //세로를 그 줄어든 비율에 따라 맞춘다
}
}
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
카이루님
스킨은 보람찬님의 동의를 얻은 후 공개할 에정입니다
보람찬님의 스킨을 잘 쓰고 있습니다.
제 맘대로 변경했으니 동의를 구해야 할 것 같아서요^^
제가 적용할때 뭔가 실수를 했었나봅니다.
TMT님, 머리숙여 감사드립니다. 꾸벅~ (--)(__)
TMT님, 머리숙여 감사드립니다. 꾸벅~ (--)(__)

좋은 팁이군요...감사합니다...^^
스크랩합니다
좋은팁 감사합니다.
잘쓰겠습니다.
잘쓰겠습니다.
사이즈 조정
이걸 어디에 붙이는 거죠? 저같은 초보는 방법을 알려줘도 모르겠네요. 밥차려줬더니 입에 넣어달란다고 흉보지 마시고 알려주세요. ^^
ㅇㅇㅇ