조회 수 1155 추천 수 0 댓글 6
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
Extra Form
라이선스 기타(따로 작성)

용량이 큰 이미지를 업로드 하게 되면, 트래픽 문제, 저장공간 문제 등... 불편한게 많은데요.


업로더 입장에서는 일일히 사이즈 줄이기 귀찮고, 운영자 입장에서는 서버에서 처리하기에는 서버 자원이 부담될 수 있죠.




그래서 만들었습니다! (미완성이지만)


클라이언트단에서 자동으로 이미지 크기를 줄여주는 소스입니다.


참고로 파일 선택을 완료하면 DataURI 값을 반환합니다. RX/XE 에서 이걸 어찌 처리해야 하나 고민하다가 귀찮아서 그냥 올립니다ㅋ


누군가 RXE용 애드온으로 완성시켜 주시길...!







첫번째 이미지는 원본이고, 두번째 이미지는 리사이징 된 결과물입니다.


용량은 1/10으로 줄었고, 이미지 크기는 가로최대 960px, 세로최대 720px 으로 적당하게 리사이징 되었습니다.


아, 참고로.. 이미지 출처는 자유게시판의 @제르님 게시글입니다.




누군가 애드온으로 만들어주시리라 믿고 있겠습니다.


다운로드는 resize.zip 에서 합시다. 이만!

  • profile
    제르엘 2018.05.07 00:02
    완성은 아직 덜 됐지만 어쨌든 능력자 네모사마...! 그나저나 저 용산행 ITX-청춘 역명판을 여기서 또 보게 될 줄이야...
  • profile
    NoYeah 2018.05.07 01:26
    리사이징 애드온이 있었던거 같은데 충돌이 많아서..

    갓네모님이 만들어줘여~
  • profile
    제르엘 2018.05.28 00:44

    어 잠깐만요 노트8 조리개값이 f/2.4였나...? f/1.7일텐데... 삼성이 가변 조리개를 탑재해놓고 홍보하지 않은 건가

  • profile
    이니스프리 2019.08.03 20:36

    네모 님~ 안녕하세요?

    제주도 여행은 잘 다녀오셨나요? ^^


    올려주신 소스를 보면서 공부하고 있는데요~

    var dataurl = canvas.toDataURL("image/jpeg"); 이 부분 관련해서 여쭤볼게요!


    구글링해보니 canvas.toDataURL 메소드가 GIF를 지원하지 않는다고 하던데요~

    https://stackoverflow.com/questions/14907122/export-canvas-as-gif-image


    var dataurl = canvas.toDataURL("image/gif"); 라고 변경해도

    GIF 파일을 업로드하면 PNG로 저장이 되면서 움짤이 안 되던데요 ㅠㅠ

    혹시 자바스크립트에서 animated GIF 파일도 리사이징을 할 수 있는 다른 방법이 있는지 여쭤봅니다!


    그럼 즐거운 주말 되세요~

    항상 감사드립니다 ^-^

  • profile
    네모 2019.08.04 21:33
    안녕하세요 :)
    제주도는 내일 출발하네요. 태풍 때문에 즐길 수 있을지는 잘 모르겠지만, 그대로 두근두근합니다!

    HTML5의 canvas는 단어에서 유추할 수 있듯, 종이 캔버스에 그림을 그리는 것과 다를바가 없습니다.
    종이에 움직이는 그림을 그릴 수 없는 것은 당연하니, 캔버스에 GIF를 올리더라도 GIF의 첫 프레임만 캔버스에 기록되겠죠.
    (캔버스를 통해 애니메이션을 구현하는 것은 보통 캔버스에 추가로 그림을 더 그리거나, 지우는 방식으로 구현하지요. 결과적으로 여러 장면이 남는게 아니라 하나의 장면만이 캔버스에 남으니 애니메이션을 기록하는 기능은 없다고 보아야합니다.)
    DataURL로 변환을 해도 마찬가지로 첫 프레임만이 기록될거구요.
    (toDataURL 메소드는 현재 캔버스에 그려진 장면을 DURL로 변환하는 메소드니 당연하지요.)

    GIF 이미지를 리사이즈 하려면, 해당 GIF에 있는 프레임들을 추출해서 리사이즈 한 뒤, 다시 애니메이션 GIF로 합치는 방법이 떠오르네요.

    각 프레임을 추출하는 라이브러리
    https://github.com/benwiley4000/gif-frames

    이미지를 Animated GIF으로 합치는 라이브러리
    https://jnordberg.github.io/gif.js/

    여행준비 하느라 시간이 많지 않아 원리는 확인해보지 못했습니다만,
    예상하기로는 직접 바이너리를 분해하거나 짜올리는게 아닐까 싶네요. 브라우저 API에 GIF를 다루는 함수를 본 기억이 없으니 그렇지 않을까... 싶네요.

    조금 더 검색해 보시면 리사이즈까지 해주는 라이브러리가 있을수도 있습니다.
    이 부분은 확인이 안되어서.. :)

    이니스프리님! 즐거운 주말 보내시구요!
    일요일 마무리 잘 하시고, 내일부터 또 활기찬 일주일 시작하시길 기원하겠습니다!

    그럼 이만 ㄴㅇㄹ!
  • profile
    이니스프리 2019.08.05 00:41

    앗 말씀하신 '다음주' 월요일에 출발하신다는 것이 바로 오늘(8/5)이었군요 ㅎㄷㄷ

    저는 지난주 월요일에 출발하시는 것으로 착각했네요~

    여행 앞두고 준비하느라 바쁘실텐데 상세한 답변을 달아주셔서 감사합니다!!


    구글링을 해보니 프레임을 추출해서 리사이즈 한 후 다시 합치는 것도 쉬운 일이 아닌 것 같네요.

    파이썬에서도 Pillow 라이브러리만으로 단순히 해결되는 문제가 아니더군요 ㄷㄷ

    말씀해주신 gif-frames와 gif.js의 깃헙에 들어가서 소스를 보기는 했는데

    아직 자바스크립트 실력이 부족해서 제가 소스를 바로 이해할 수 있는 수준은 아닌 것 같네요 ㅠㅠ

    이 플러그인을 이용해서 좀 더 만들어보겠습니다~


    그럼 조심해서 여행 잘 다녀오시구요~

    부디 북상하는 태풍이 제주도에서 멀리 빗겨가서 도쿄로 향하기를 진심으로 기원합니다!

    모처럼 휴가를 내서 제주도에 가시는데 즐겁고 뜻깊은 시간이 되셨으면 좋겠습니다 ^-^

    번번이 감사합니다!!


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
38 코드 파이선 셸에서 실행하면...? 3 제르엘 2018.07.22 546
37 코드 [Python] 모 정부기관 사이트 파싱 후 PC 통신처럼 열람하고 싶은 게시글 번호를 입력하면 내용을 보여주는 소스 (허접) 4 이니스프리 2018.09.14 742
36 코드 [오토핫키] 특정 사이트에 대한 ping 테스트 결과를 실행시간과 함께 로그 파일로 저장하는 스크립트 2 이니스프리 2018.09.22 2052
35 코드 [오토핫키] 구글 드라이브의 공유링크를 이미지 호스팅을 위한 다이렉트 링크로 바꿔주는 스크립트 10 file 이니스프리 2018.09.25 1754
34 코드 [PHP] 기상청 중기예보를 캐러셀로 보여주는 위젯 (매우 허접합니다 ㅠㅠ) 10 file 이니스프리 2018.09.28 733
33 코드 [오토핫키] 브라우저를 열어 지난번과 동일한 폴더에 MZK를 다운받고 압축을 네이티브로 해제하는 스크립트 file 이니스프리 2018.10.20 918
32 코드 [PHP] 기상청 RSS 시간별 예보 위젯 - cache 적용(?) 9 file 이니스프리 2018.10.28 990
31 코드 [PHP] 그누보드 자동 게시글 작성 - 일본기상협회의 우리나라 날씨를 크롤링한 후 파파고로 번역하여 글 작성 4 file 이니스프리 2018.11.15 821
30 코드 [아미나] 게시글을 작성하면 ID와 IP로 필터링하여 자동으로 랜덤 댓글을 남기기 (+랜덤 포인트) 7 file 이니스프리 2018.11.18 803
29 코드 [Python] 텔레그램을 이용한 게시판 새 글 알림봇 7 이니스프리 2018.12.02 3977
28 코드 [PHP] 간단한 캐싱 클래스 3 title: 황금 서버 (30일)humit 2018.12.06 855
27 코드 [아미나] 출석 여부를 나타내는 메인화면 위젯 4 file 이니스프리 2018.12.15 769
26 코드 [아미나] 네이트 실시간 검색어 순위 위젯 (아미나 캐시 적용) 3 file 이니스프리 2018.12.18 1122
25 코드 [PHP] 이미지를 원하는 크기(원본비율 유지)로 리사이즈 하여 출력 (원본 이미지는 수정하지 않습니다) 6 이니스프리 2018.12.20 7994
24 코드 [JS] http를 https로 리디렉션! 3 Hanam09 2018.12.30 839
23 코드 [JS]클라이언트에서 Ip를 얻어보자 2 Hanam09 2019.01.21 776
22 코드 [Python] 선택한 파일을 Dropbox API를 이용하여 업로드하고 공유링크를 받아서 이미지 호스팅 용도로 URL을 변환하기 1 file 이니스프리 2019.07.02 1166
21 코드 [Python] Selenium을 이용하여 특정 element를 캡처하는 스크립트 2 file 이니스프리 2019.07.03 6105
20 코드 [PHP/Javascript] 아미나에 자동으로 게시글을 생성하고 Ajax로 전송하여 결과를 표시하기 2 file 이니스프리 2019.07.09 925
19 코드 [Python] 네이버 모바일 이미지 검색에서의 이미지 파일을 멀티스레드로 다운받고 1개의 파일로 병합 11 file 이니스프리 2019.07.12 1473
Board Pagination Prev 1 2 3 4 Next
/ 4