2016-05-31 15 views
9

Firebase 스토리지는 매우 멋지며 사용하기 쉽지만 Firebase Storage에 업로드하기 전에 이미지 크기를 조정할 수있는 방법이 있는지 궁금합니다. 예를 들어 ImageMagick을 사용하여 프로세스를 실행합니다. 서버를 실행 한 다음 Firebase SDK를 사용하여 업로드 프로세스를 실행하지만 Firebase SDK 서버에 저장 기능이 없다는 것을 알았습니다.Firebase에 업로드하기 전에 이미지 크기 조정

+1

"Firebase에 업로드하기 전에"[이미지 조작을위한 여러 노드 라이브러리] (http://stackoverflow.com/questions/24026320/node-js-image-resizing-without-imagemagick), 예 ? – Kato

+0

예, 모든 언어로이 작업을 수행 할 수있는 방법이 많이 있습니다. –

답변

14

Firebase Storage + Google Cloud Functions을 사용하여 이미지를 업로드하고 ImageMagick 등을 사용하여 이미지의 크기를 조정 한 다음 Firebase Storage에 다시 쓸 수 있습니다.

나는 함께 here을 사용하는 예제가 있지만 (이미지 리사이저 대신 Cloud Vision API을 트리거 함).

빠른 참고 사항 : Firebase Storage에는 Node.js 클라이언트가 없으므로 GCloud-Node 라이브러리를 사용하는 것이 좋습니다.

+0

나는 똑같은 생각을하고 있었지만 잘 모르겠다. 노드 대신에 gcloud-golang을 사용하는 것이 굉장 할 것이다. –

+0

언제든지 객체 변경 알림 (https://cloud.google.com/storage/docs/object-change-notification) + Go Google App Engine 앱 (https://cloud.google.com/appengine/)을 설정할 수 있습니다. docs/go /) : –

+0

클라우드 기능이 firebase의 일부라는 사실은 nodej를 사용하여 솔루션을 구현하는 것이 더 쉽다는 것을 알고 있습니다. –

2

우리는 이미지의 크기를 조절하기 위해 클라이언트 장치의 처리 능력을 사용하고, 우리에게 공간과 비용을 절약하고, 클라이언트에게 대부분의 모바일의 경우 시간의 무리도 돈을 절약, 좋은 작품 크기를 조정 자바 스크립트를 사용하고 있습니다.

우리가 를 사용하는 원래의 스크립트는이 같은 간단 사용 from here 및 절차를 온 :

<input type="file" id="select"> 
<img id="preview"> 
<script> 
document.getElementById('select').onchange = function(evt) { 
    ImageTools.resize(this.files[0], { 
     width: 320, // maximum width 
     height: 240 // maximum height 
    }, function(blob, didItResize) { 
     // didItResize will be true if it managed to resize it, otherwise false (and will return the original file as 'blob') 
     document.getElementById('preview').src = window.URL.createObjectURL(blob); 
     // you can also now upload this blob using an XHR. 
    }); 
}; 
</script> 

나는 그 사람 (dcollien)는 장점을 많이받을 자격이 믿고, 그래서 그의 대답을 투표하는 것이 좋습니다.

0

마지막 코멘트에 몇 가지 문제가 있습니다. 첫째, 이것이 클라이언트 -> 서버 인 경우, 크기 조정이 수행되는 것이 보장되지 않는다는 것을 이해하십시오. 클라이언트는 위의 규칙에 따라 재생하지 않기로 결정하면 다른 크기의 이미지를 업로드하고 업로드 할 수 있습니다. 클라이언트를 신뢰하지 마십시오. 클라이언트가 서버에서 오는 것들의 크기를 조정하기를 원하는 경우. 이것은 스타일과 같을 것이고 대역폭을 감소시키지 않을 것입니다.

+0

https://stackoverflow.com/questions/37557343/resize-an-image-before-uploading-it-to-firebase/49162553#comment85330829_37558536 –

관련 문제