有誰知道任何免費的腳本,儘可能壓縮JPG,GIF和PNG文件?上傳前壓縮客戶端圖像
25
A
回答
10
您可能可以用canvas
調整圖像大小,並使用dataURI將其導出。雖然不確定壓縮。
4
我在這裏讀到一個實驗:http://webreflection.blogspot.com/2010/12/100-client-side-image-resizing.html
的理論是,你可以用帆布上傳之前調整客戶端上的圖像。原型示例似乎只適用於最近的瀏覽器,雖然有趣的想法...
但是,我不確定使用畫布壓縮圖像,但您可以調整它們的大小。
51
我只是開發了一個名爲JIC來解決這個問題一個JavaScript庫。它允許你在客戶端壓縮jpg和png 100%,並且不需要外部庫!
你可以在這裏嘗試演示:http://makeitsolutions.com/labs/jic 這裏獲得來源:https://github.com/brunobar79/J-I-C
希望你喜歡它。
4
我遲到了,但這個解決方案對我來說工作得非常好。基於this library,您可以使用此LIK一個功能 - 設置圖像質量,最大寬度,和輸出格式(JEPG,PNG):
function compress(source_img_obj, quality, maxWidth, output_format){
var mime_type = "image/jpeg";
if(typeof output_format !== "undefined" && output_format=="png"){
mime_type = "image/png";
}
maxWidth = maxWidth || 1000;
var natW = source_img_obj.naturalWidth;
var natH = source_img_obj.naturalHeight;
var ratio = natH/natW;
if (natW > maxWidth) {
natW = maxWidth;
natH = ratio * maxWidth;
}
var cvs = document.createElement('canvas');
cvs.width = natW;
cvs.height = natH;
var ctx = cvs.getContext("2d").drawImage(source_img_obj, 0, 0, natW, natH);
var newImageData = cvs.toDataURL(mime_type, quality/100);
var result_image_obj = new Image();
result_image_obj.src = newImageData;
return result_image_obj;
}
3
如果你正在尋找一個庫,進行客戶端 - 側面圖像壓縮,你可以檢查一下:compress.js。這基本上可以幫助您純粹用JavaScript壓縮多個圖像並將它們轉換爲base64字符串。您可以選擇以MB爲單位設置最大尺寸以及首選的圖像質量。
相關問題
- 1. 未壓縮前端壓縮圖像
- 2. 客戶端數據壓縮/解壓縮?
- 3. ServiceStack客戶端壓縮
- 4. 壓縮和RESCALE上傳的圖像
- 5. 上傳壓縮圖像文件大小?
- 6. 的Android上傳圖像到Google雲端硬盤無壓縮
- 7. Javascript客戶端數據壓縮
- 8. 使用javascript壓縮xhtml客戶端?
- 9. 在客戶端壓縮文件
- 10. 在客戶端獲取壓縮文件
- 11. 爲IE6客戶端禁用GZIP壓縮
- 12. 在上傳到服務器之前壓縮視頻和圖像
- 13. 上傳到FirebaseStorage之前的圖像壓縮
- 14. 如何在Laravel上傳之前壓縮圖像?
- 15. Apache FTP客戶端在傳輸時是否壓縮文件?
- 16. 在上傳前調整客戶端上的圖片
- 17. 在上傳之前縮放圖像
- 18. 從服務器發送壓縮的圖像,並在客戶端解壓縮他們
- 19. FTP客戶端在上傳之前上傳並在上傳之後在服務器上解壓
- 20. 圖片上傳:iPhone客戶端 - Django - S3
- 21. 在客戶端首先上傳圖片
- 22. 上傳前在客戶端查看從文件系統中選擇的圖像?
- 23. 在提交給PHP上傳之前在客戶端調整圖像大小
- 24. Web客戶端上傳值
- 25. 與前端圖像上傳問題
- 26. 上傳圖像在magento前端
- 27. 如何以角度上傳圖像作爲API客戶端?
- 28. 將圖像從J2ME客戶端上傳到Servlet
- 29. django圖像上傳休息框架和測試客戶端
- 30. 組件上傳與客戶端作物多個圖像
所有這三個都是壓縮格式。進一步壓縮現有的圖像會導致質量損失。 – Charles 2011-04-09 19:45:06
你對這個「smushit.com」有什麼評價? – xtremist 2011-04-09 20:07:20
@Charles不一定,大多數人都懶惰地壓縮他們的圖像。所以無損壓縮可能會大大減少大多數圖像的大小。 – 2017-05-02 11:34:51