อัปโหลดไฟล์ภาพ: สามารถบีบอัดที่ฝั่งไคลเอ็นต์ได้หรือไม่


9

เมื่อเสนอการอัปโหลดไฟล์ภาพถ่ายโดยปกติผู้ใช้จะมีไฟล์ JPEG ที่บีบอัดและมีขนาดใหญ่มาก (10+ ล้านพิกเซล) จากกล้องหรือโทรศัพท์ ทางฝั่งเซิร์ฟเวอร์ไฟล์เหล่านี้จะถูกบีบอัดใหม่เป็นอย่างเช่น 800x600px และ JPEG คุณภาพ 7 หรือ 8

เป็นไปได้หรือไม่ที่จะทำการบีบอัดข้อมูลนั้นในฝั่งไคลเอ็นต์? ดังนั้นฉันจะต้องส่งเพียง 100kB (800x600px) และไม่ 3 MB หรือมากกว่า สิ่งที่ต้องการ:

(1) ด้วย FileSystem API ใหม่ของ javascript ( http://slides.html5rocks.com/#filewriter ) มันเป็นไปได้ที่จะอ่านข้อมูลของไฟล์ภาพถ่ายลงใน JS ฝั่งไคลเอ็นต์

(2) จากนั้นจำเป็นต้องเข้ารหัสข้อมูล JPEG อีกครั้งซึ่งเป็นไปได้ แต่ฉันไม่พบไลบรารีใด ๆ สำหรับที่ (แต่) ใครรู้จักห้องสมุดเช่นนี้?

(3) ขั้นตอนสุดท้ายคือการ POST ข้อมูล JPEG ที่ถูกบีบอัดใหม่ไปยังฝั่งเซิร์ฟเวอร์สำหรับการจัดเก็บและรับ URL ไปยังไฟล์ภาพที่เก็บไว้กลับจากเซิร์ฟเวอร์เพื่อรวมไว้ใน HTML ของลูกค้า

ฉันกำลังมองหาปลั๊กอิน jQuery, ไลบรารี JS อื่น ๆ หรือหน้าเว็บตัวอย่างที่ทำสิ่งนี้


มันเป็นไปได้ที่จะเพิ่มประสิทธิภาพ / หดภาพก่อนที่จะอัปโหลด? คำถามที่ StackOverflow นำเสนอโซลูชั่นที่เป็นไปได้หลายอย่าง
danlefree

คำตอบ:


4

Pluploadรองรับการปรับขนาดภาพ html5 จากนั้นอัพโหลดมันยังมีข้อผิดพลาดสำหรับเบราว์เซอร์ที่ไม่รองรับ (เช่นไอไอ ) ใน Flash, Silverlight (และเนื้อหาโบราณเช่น Google Gears และ BrowserPlus)



2

ลองชมตัวอย่างนี้: http://makeitsolutions.com/labs/jic

มันเป็นห้องสมุดจาวาสคริปต์ที่ฉันสร้างขึ้นเพื่อแก้ปัญหานั้น

จะช่วยให้คุณบีบอัด jpg และ png ในฝั่งไคลเอ็นต์ 100% ด้วย javascript และไม่ต้องใช้ไลบรารีภายนอก!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.