포럼
image_lazyload 임시 배포합니다.(라스트오더?!)
2014.05.13 12:18
공식 배포전 최종... 파일이라고 보시면 됩니다.
다음과 같은 변경사항이 생겼습니다.
1. host 비교는 더이상 필요 없습니다. 따라서 해당 설정을 삭제하였습니다. FileHandler::getRemoteFile() 이용
- 도움 @misol 님, @YJSoft 님 (사실 전 한 게 없습니다..ㅎㅎㅎ )
2. 이건 추측입니다만.. 어쨌든 이미지를 불러와서 저장을 하게되면 트래픽이.. 사용되는 게 아닐까? 라는 단순한
생각에서.. 글을 작성할 때 dummy code 삽입과 해당 이미지 크기를 강제적으로 넣도록 하였습니다. 글작성할 때만 트래픽이 발생하고.. 그 이후에는 이미지가 로드할 때 트래픽이 발생하게 되겠죠..
- 만일 위의 FileHandler::getRemoteFile() ~ 가 트래픽과 전혀 상관이 없다면 글쓰기에서의 더미 설정은 빼겠습니다.
3. 기존에 작성된 글을 위하여 dummy 설정 값이 없다면 1번 기능을 이용하여 값을 구하도록 하였습니다.
4. 더미이미지 자체를 변경하였습니다. 고정형 더미이미지를 사용하면 아무래도 리사이즈 관련해서 문제가 많습니다.
따라서 http://placehold.it 를 이용하여 원본 이미지 크기의 더미이미지를 사용합니다.
해당 기능에서 제공하는 설정을 제공합니다.
배경색, 글자색을 선택하실 수 있습니다.
만일 글자가 나오는 것을 원치 않으시면 배경색과 글자색에 같은 값을 입력하시면 됩니다.
기본적으로 글자는 해당 이미지의 해상도 크기가 나옵니다.
예)
사실상 최종이지 않을까... 합니다..
추후 개선한다면 placehold.it 사이트를 이용하지 않고 자체적으로 더미이미지를 해당 크기만큼 생성하도록
gd라이브러리(?)를 이용하는 거겠죠...
우선은 이정도로 만족하겠습니다..후후
테스트는 http://anizen.kr/image_lazyload/ 여기서 하시면 됩니다.
최종적으로 테스트를 해보고.. 크게 문제가 없다는 의견이라면
정식 배포 하겠습니다.
감사합니다~
댓글 35
-
YJSoft
2014.05.13 12:32
-
애니즌
2014.05.13 12:39
궁금한 게요 'ㅇ' getImagesize() 라는 걸 쓰게 되면
해당 이미지 크기만큼 다 불러오게 되는 건가요? 아니면 이미지에도 header같은 게 있어서 크기값만 가져올 수가 있는 건가요?(트래픽은 발생하지만 그 양이 실제 파일 받는 것보다는 적다거나..)
아.. 그런데.. 서버에서 실행되는 건 트래픽이 발생안하나요?(서버기준으로 보면 로컬일테니..)
이런 쪽은 전혀 모르다보니.. ㅎㅎ
만약 맞다면~ 글쓰기 부분에서 추가한 것을 빼버려야 겠네요~
아니라면.. 현재 상태를 유지하여 글을 작성할 때 한번 체크하는 것이 좋을 것 같구용 ㅇㅅㅇ!!
-
YJSoft
2014.05.13 12:50
대략 30MB정도 되는 파일로 테스트해보니 전체 이미지를 가져오는것 같네요.
http://yjsoft.pusku.com/img.php(실행시간이 조금 걸리는걸로 봐서...)
서버쪽에서 다운로드를 받는건 트래픽 제한에 해당하지 않는 것 같습니다.
(저도 자세히는 모르지만요)
-
애니즌
2014.05.13 13:33
어쨌든 영향이 있긴한가 보군요..ㄷㄷ
그럼 글쓰기에 코드를 넣되, 크기만 넣어야겠네용 ㅎ -
애니즌
2014.05.13 14:03
그렇군요 확실히 느린 걸로 봐서는 파일을 전부 로드하는 군요...
-
prologos
2014.05.13 14:18
getimagesize()는 파일 전체를 필요로 합니다. 로컬 파일이면 트래픽은 상관없을거구요.
외부 파일일경우 로컬에 파일 저장없이 curl을 이용해서 조금더 빠르게 width, height를 구할수도 있습니다.
$url = "외부 이미지 주소"; $headers = array( "Range: bytes=0-32768" ); $curl = curl_init($url); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($curl); curl_close($curl); $im = imagecreatefromstring($data); $width = imagesx($im); $height = imagesy($im); unset($data); imagedestroy($im);
-
mAKEkr
2014.05.13 12:58
placehold.it은 가급적 사용안하시는게 좋아요.
예전에 이미지 크기 지정하려고 썼었는데, placehold.it 서버가 자주 나가버려서 ㅠㅠ 꽤 당황했던적이 많았습니다.
-
애니즌
2014.05.13 13:32
헛....! 서버가 불안한가 보군요 ㄷㄷㄷ
그럼 gd라이브러리를 써야겠네요..ㅎ우선은 gd라이브러리로 임시 구현은 해봤는데.. 일단은 잘되는 군요 ㅎㅎ
-
mAKEkr
2014.05.13 14:28
클라이언트용으로 쓰이는게 있죠~
http://imsky.github.io/holder/
-
애니즌
2014.05.13 14:48
오오오오오+_+!! 이런 것도 있었군요 !!+_+!!! 좋은 자료 덕분에 알아갑니다~~
-
애니즌
2014.05.13 14:53
이걸로 사용해야겠네요 +_+
-
mAKEkr
2014.05.13 14:55
bootstrap쪽 데모페이지에서도 쓰이는녀석입니다. 저도 예전에 placehold.it 대체할거 찾다가 발견한건데 도움이 되셔서 다행이네요 ^^
-
애니즌
2014.05.13 15:02
우와 신기하네요 +_+
세상 참 좋아졌다는 .. 생각이 ㅋㅋ
브라우저 호환성도 좋네요! ie6부터 지원이라니..ㄷㄷ
정말 감사합니다!
언능 짜봐야겠네요 ㅋㅋ
-
애니즌
2014.05.13 15:15
으앜~~ 짜보니 문제가 생...겼네요..-_-;;;
이게 이미지를 또 자체적으로 사이즈를 지정하나 봅니다..
이미지 리사이즈가 안먹네용..흐..-_ㅠ..
그냥 gd라이브러리로 가야할 것 같아용..
-
mAKEkr
2014.05.13 15:42
ㅠㅠㅠㅠㅠ
-
애니즌
2014.05.13 14:20
라스트오더 2차입니다.
1. placeholder.it 을 사용하지 않고 GD 라이브러리를 사용하여 더미이미지를 생성합니다. (GD라이브러리가 없음 작동안됨)
2. RewriteEngine(짧은주소)을 사용합니다. (사용할 수 없으면 우선은 작동안됨)
-
YJSoft
2014.05.13 14:37
gd라이브러리는 XE 설치조건중 하나라 없는 경우에는 XE 설치자체가 안됩니다
고로 GD 라이브러리가 없는 경우는 생각하지 않아도 됩니다
-
애니즌
2014.05.13 14:48
그렇군용 +_+ !! ㅎㅎ
-
애니즌
2014.05.13 18:25
아아~ 이제 최종적으로 배포할 수 있을 것 같습니다.
현재 추가된 설정 입니다.
더미 이미지로 활용될 holder 이미지를 다양하게 선택할 수 있도록 하였습니다.
1. 자체 서버 - 애드온을 이용하여 자체적으로 실행합니다. (rewriteMod가 지원되야 합니다.)
2. 자체 서버 (rewriteMod 미지원) - 위와 동일하나 rewriteMod가 지원되지 않는 환경에서도 사용 가능합니다.
3. placehold.it - placehold.it 을 이용합니다. (단 글자는 안띄웁니다.)
4. anizen.kr/holder - 임시로 추가해둔 제 호스팅입니다..-_-;; 용량도 얼마 안되서 그냥 일단 추가해뒀습니다. (언제 내릴지 모르니 웬만하면 사용하지 말아주세요.)
아직까지 특별한 문제가 없는 걸로 보아 금일 중으로 정식 배포할 수 있을 것 같습니다.
퇴근 후에 뵙도록 할게요 ~
-
#혼마 메이코
2014.05.13 18:27
꼭...꼭 써보겠습니다...사용후 마개조를 해보겠습ㄴ니다.. 으흫흐ㅡㅡ흫(이하생략)
-
애니즌
2014.05.13 18:59
마개조가 뭔가용?
-
#혼마 메이코
2014.05.13 19:02
제 입맛에 맞게...죄다 (검열삭제) ..할거임
어차피 혼자쓰니까요 ㅋㅋㅋ
-
애니즌
2014.05.13 20:48
배포완료 :)
-
StyleRoot
2014.05.13 21:05
라스트 오더라고 해서... 이건 줄 알았자나요. // ㅅ // -
애니즌
2014.05.13 21:05
에..? 맞습니다..ㅋㅋ 아래 라스트오더를 보고 와서 그렇게 지었지요..ㅋㅋ
-
StyleRoot
2014.05.13 21:08
혹시 버전은 20001 인가요? ㅋㅋ (농담)
-
애니즌
2014.05.13 21:08
아..아쉽게도 센스가 부족해서
0.3 입니다.ㅋㅋㅋㅋㅋㅋㅋㅋ ( 아직 추가할 기능이 있는지라..ㅋㅋ)
-
#혼마 메이코
2014.05.13 21:10
저기 하얀머리 소아성애자가 보이네요...
-
StyleRoot
2014.05.13 21:10
츤데레레이터
-
#혼마 메이코
2014.05.13 21:12
좋아하게 된 상대가 어린이일 뿐이라고... 하던데... (도망)
-
prologos
2014.05.13 21:43
단순하게 더미 이미지만 필요하다면 아래 링크를 이용해 보세요. GD 라이브러리를 이용해서 더미 이미지 출력 합니다. 출력 type은 jpg, gif, png지원합니다 @.@https://github.com/FabianBeiner/PHP-Dummy-Image-Generator -
애니즌
2014.05.13 22:32
오오 좋은 넘이네요 +_+ !!
감사합니다:)
우선 애니즌에만 적용해놨습니다. ㅋㅋ (서버설정에서 애니즌으로 선택하면 말씀하신 걸로 뜰거에용)
-
#혼마 메이코
2014.05.13 23:13
서버 스크립트가 궁금하지만 일단은 참아야겠음... 주르륵
수정할게 산더미...
-
젠스튜디오
2014.10.30 07:47
아쉽게도 링크가 깨져있네요
-
EnterTM
2014.10.30 12:51
국내같은경우 incoming traffic는 체크를 거의 안하지만 해외에서는 incoming traffic 까지 트래픽에 합산하는 경우가 있으니 참고하셔야됩니다.
보통 트래픽은 아웃바운드(서버에서 클라이언트쪽으로 나가는) 트래픽을 제한하기에 인바운드 트래픽(서버쪽으로 들어오는) 은 제한 대상이 아닙니다.
그리고 getImagesize를 실행하려면 해당 이미지를 받아와야 하기에 오가는 자료의 양은 비슷할 겁니다
(다만 누군가 고의적으로 1GB 정도의 이미지를 링크했다면 크기를 구하기 위해 받는 과정에서 문제를 일으킬수 있겠죠)