איך להקטין את גודל קובץ התמונה
טופס ההעלאה דורש פחות מ-2 MB והתמונה שלי היא 8 MB. מה בעצם צריך לשנות?
שלושה מנופים, ואחד מהם שולט
כל כלי לדחיסת תמונות מושך שילוב כלשהו של שלושה מנופים: כמה פיקסלים יש בתמונה, כמה פרטים המקודד רשאי לזרוק, ובאיזה פורמט הוא כותב. אנשים ניגשים קודם כול למחוון האיכות, כי זה המחוון שכל כלי מציג ראשון. בדרך כלל זו הנקודה הלא נכונה להתחיל בה.
המידות הן הגורם השולט, כי גודל הקובץ גדל בערך ביחס למספר הפיקסלים, ומספר הפיקסלים גדל ביחס לריבוע של המידה הליניארית. חיתוך הרוחב והגובה לחצי מותיר רבע מהפיקסלים. שום דבר שאפשר לעשות עם מחוון איכות אינו מכריע כל כך, ושום שינוי אחר לא עולה כל כך מעט באיכות הנתפסת — כל עוד התוצאה עדיין גדולה מהמסגרת שבה היא תוצג.
חשבו כמה פיקסלים אתם באמת צריכים
מצלמה של טלפון מודרני מייצרת תמונות ברוחב של בערך 4000 פיקסלים. תמונה במסך מלא במחשב נייד מוצגת ברוחב של 1500 עד 2000 פיקסלים בערך, ותמונה בתוך כתבה מוצגת לא פעם ברוחב 800. שליחת 4000 פיקסלים למסגרת שמציגה 800 פירושה שכ-96 אחוז מהפיקסלים נזרקים על ידי התוכנה של הצופה אחרי שהם כבר הורדו.
| הצלע הארוכה | מספר פיקסלים משוער | החלק מהמקור של 4000 px |
|---|---|---|
| 4000 px | 10.7 מיליון | 100% |
| 2560 px | 4.4 מיליון | 41% |
| 1920 px | 2.5 מיליון | 23% |
| 1280 px | 1.1 מיליון | 10% |
| 800 px | 0.4 מיליון | 4% |
האחוזים האלה הם חשבון פשוט, לא מדידה של קובץ מסוים — קובץ דחוס לא מתכווץ ביחס מדויק למספר הפיקסלים שלו. ובכל זאת נכון להסתכל עליהם ראשונים, כי הם מראים כמה מרווח שינוי הגודל נותן למקודד לפני שהוא נאלץ להתחיל לזרוק פרטים.
מה מחוון האיכות באמת עושה
במקודד JPEG, מספר האיכות מכייל טבלה של מחלקים שמופעלים על מקדמי התדר של כל בלוק 8×8. איכות נמוכה יותר פירושה חלוקה גסה יותר, כלומר יותר מקדמים מתעגלים לאפס, כלומר פחות סיביות. המחיר הנראה לעין מופיע קודם כול סביב קצוות חדים ובמעברי גוון חלקים: הילות ליד טקסט, ופסים בשמיים.
הסולם אינו ליניארי ואינו בר-השוואה בין פורמטים. איכות 80 במקודד JPEG, במקודד WebP ובמקודד AVIF הם שלושה מספרים לא קשורים שבמקרה חולקים אותו טווח. שפטו את התוצאה לפי הסתכלות עליה בגודל מלא, לא לפי אמון במספר.
למה יעד גודל הוא חיפוש ולא הגדרה
שום מקודד לא מקבל את ההוראה “תעשה מזה 500 KB”. הוא מקבל הגדרת איכות ומייצר את הגודל שההגדרה הזו מייצרת עבור התמונה המסוימת הזו. לכן כלי שמציע לכם יעד גודל מריץ בעצם חיפוש: לקודד, למדוד, לכוונן את האיכות, לקודד שוב, ולעצור כשהתוצאה מתחת לתקציב או כשמגיעים לרצפת האיכות.
לכן יעד גודל הוא תמיד מאמץ מיטבי. תצלום עשיר בפרטים, רועש וברזולוציה גבוהה עשוי שלא להיכנס לתקציב הדוק באף איכות שאדם יסכים לה, והתשובה הכנה היא לעצור ברצפה ולומר לכם היכן העצירה קרתה, ולא להמשיך עד שהתמונה נהרסת. כלי יעד הגודל של FileSlimmer מקטינים קודם את המידות, אחר כך מצמצמים את האיכות בין גבולות, ומדווחים על ההגדרה שבה סיימו.
איך להקטין תמונה מתחת ל-1 MB
התחילו בשינוי הגודל של תמונת הטלפון למידות הגדולות ביותר שהיעד באמת צריך. עבור אימייל, טפסים ודפי אינטרנט רגילים, זה לרוב הרבה מתחת למקור של המצלמה. אחר כך קודדו JPEG או WebP חדש באיכות גבוהה אך לא מקסימלית, מדדו את התוצאה, והורידו את האיכות בהדרגה רק אם הקובץ עדיין מעל 1 MB.
האיכות לבדה לא קובעת אם התוצאה תנחת מתחת ל-1 MB, כי תמונות עשירות בפרטים דורשות יותר נתונים מתמונות פשוטות. אם המעבר הראשון מפספס את המגבלה, הקטינו את המידות לפני שאתם דוחפים את האיכות נמוך יותר. בדרך כלל כך נשמרת תמונה טבעית יותר למראה מאשר שמירה על כל פיקסל והוספת ארטיפקטים חזקים של בלוקים או הילות.
דברים שלא עוזרים
- להכניס את הקובץ ל-ZIP. בפורמטי תמונה דחוסים כמעט לא נשארה כפילות שדחסן כללי יכול למצוא; הארכיון בדרך כלל בגודל המקורי עד כדי שגיאת עיגול.
- לשנות את הסיומת. הבייטים לא משתנים, ותוכנה שקוראת את חתימת הקובץ עצמה פשוט תתבלבל.
- לשמור JPEG מחדש באותה איכות. זהו מעבר שני של דחיסה עם אובדן: הקובץ לא קטן בשום צורה מועילה והתמונה נעשית מעט גרועה יותר.
- להסיר מטא-דאטה מתצלום, אם הגודל הוא המטרה היחידה שלכם. כמה קילובייטים של EXIF מול כמה מגה-בייטים של פיקסלים הם רעש. הסירו אותו מטעמי פרטיות, שהם אמיתיים, לא בשביל הגודל.
תהליך עבודה שבדרך כלל מגיע ליעד
- החליטו מה הגודל הגדול ביותר שבו התמונה אי פעם תוצג, ושנו את הצלע הארוכה לגודל הזה.
- בחרו את הפורמט שמתאים לתוכן: פורמט עם אובדן לתצלומים, פורמט ללא אובדן לצילומי מסך ולגרפיקה שטוחה.
- התחילו באיכות גבוהה אך לא מקסימלית, ורדו שלב אחר שלב עד שאתם רואים את הנזק, ואז עלו שלב אחד בחזרה.
- בדקו את התוצאה בגודל מלא, על סוג המסך שאליו היא מיועדת.
- אם היא עדיין גדולה מדי, חזרו לשלב הראשון. כמעט תמיד יש יותר מרווח במידות מאשר באיכות.
היכן זה מפסיק לעבוד
יש תמונות שמתנגדות לכל זה. מסמך סרוק מלא בטקסט קטן זקוק לפיקסלים שלו כדי להישאר קריא, ולכן שינוי גודל פוגע מיד, והורדת איכות מייצרת בדיוק את הארטיפקטים שהופכים טקסט לקשה לקריאה. לצילום מסך של גיליון אלקטרוני יש אותה בעיה. במקרים כאלה התשובה הנכונה היא לא פעם פורמט אחר — ללא אובדן, או PDF — ולא מספר קטן יותר של קילובייטים.
ואם פורטל דוחה את הקובץ שלכם, בדקו אם המגבלה היא על גודל הקובץ או על מידות הפיקסלים. אלה מגבלות שונות, וקובץ שעובר את האחת עדיין עלול להיכשל באחרת.
כלים למשימה הזו
מקורות
- ITU-T T.81 — quantisation and the JPEG quality scale
- MDN — Image file type and format guide
- MDN — Responsive images and choosing a display width