נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: C++ | שאלה בקשר לעיבוד תמונת BMP

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
thunder`
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 01 January 2007
משתמש: מנותק/ת
הודעות: 10
נשלח בתאריך: 01 January 2007 בשעה 15:35 | IP רשוּם
ציטוט thunder`

שלום לכולם!
הסתכלתי ברשת על מבנה הBMP כדי לדעת איך אוכל לשלוף מתוך הקובץ את רוחבו, אורכו, תחילת האופסט וכהנה המידע שמצוי בHEADER של BMP.
תחילת התמונה בקובץ BMP מתחילה בבייט ה54.
לאחר מכן מופיעים מאפייני הפיקסלים ברצף עד סופו של הקובץ (נא להתייחס לקובץ BMP של 24bit)
* ביצעתי את קריאת הקובץ וכתיבתו בשיטה בינארית
כתבתי תוכנית שתקלוט קובץ BMP ותחזיר את הNEGATIVE שלו... כלומר תכתוב קובץ BMP נוסף שהוא הNEGATIVE של של הקלט ונתקלתי בתופעה מוזרה:
עבור קובץ BMP קטן של 9*10 פיקסלים מצויין כל 9 פיקסלים (9*3 בייטים - RGB) מצויים 2 בייטים שמבטאים שורה חדשה, וכך בתוכניתי כל  9 פיקסלים הוספתי 2 בייטים של רווח (00).

המקרה המוזר הוא שבקובץ אחר, תמונה רגילה שלקחתי ולא יצרתי, התוספת לשורה חדשה הייתה בייט אחד בלבד ולא שניים כמו בקובץ BMP שיצרתי לבד בצייר
בנוסף לכך, בקובץ תמונה אחר שלקחתי ושמרתי כ24bit כלל לא היה צורך בתוספת של בייטים שמציינים שורה חדשה.

אני מקווה שמישהו יוכל להסביר לי את התופעה הזאת ולהגדיר את התלות של מספר הבייטים שצריך להוסיף בגודל התמונה או בכל קריטריון אחר

תודה!
חזרה לתחילת העמוד הצג את כרטיס החבר של thunder` חפש הודעות אחרות של thunder`
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 01 January 2007 בשעה 17:19 | IP רשוּם
ציטוט shoshan

זה לא קשור לגודל של התמונה, פשוט השורות מסודרות ככה שהאורך שלהן יתחלק במספר מסויים, ומוסיפים "רווחים" כדי שיהיו באורך מתאים.

__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
thunder`
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 01 January 2007
משתמש: מנותק/ת
הודעות: 10
נשלח בתאריך: 01 January 2007 בשעה 17:46 | IP רשוּם
ציטוט thunder`

אך אורך השורה הוא קבוע לאותה תמונה לא ככה?
ואם לא, איך אדע כמה רווחים להוסיף לכל תמונה ותמונה? הרי התוכנית שלי עבדה לתמונה אחת ולא לאחרת, ורק לאחר הוספת/הסרת רווח או שניים בכל שורה התוכנית הוציאה פלט תקין

עריכה: התכוונת אולי שצריך להוסיף רווחים לרוחב של התמונה כדי שיתחלק במספר כלשהו? אם כן, במה הוא צריך להתחלק?
חזרה לתחילת העמוד הצג את כרטיס החבר של thunder` חפש הודעות אחרות של thunder`
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 01 January 2007 בשעה 18:07 | IP רשוּם
ציטוט shoshan

לא, לא, האורך של השורה...

לפי הפורמט מספר הבייטים בכל שורה צריך להתחלק ב-4, והרי כל פיקסל מכיל 3.

אז אם לדוגמא יש לנו תמונה ברוחב 30 פיקסלים, זה אומר שיש לנו בינתיים בשורה
90 בייטים, והמספר צריך להתחלק ב-4, כלומר כמה חסר לנו לכפולה הבאה של 4 ?
עוד 2 בייטים, ולכן יהיו לנו עוד שני NULLS בסוף כל שורה.


__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
thunder`
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 01 January 2007
משתמש: מנותק/ת
הודעות: 10
נשלח בתאריך: 01 January 2007 בשעה 18:10 | IP רשוּם
ציטוט thunder`

תודה רבה! עזרת לי מאוד! עד כמה שאני מתבייש שלא עליתי על החלוקה ב4 לבד...
חזרה לתחילת העמוד הצג את כרטיס החבר של thunder` חפש הודעות אחרות של thunder`
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

קפיצה לפורום
אינך יכול/ה לשלוח נושאים חדשים בפורום זה
אינך יכול/ה להגיב לנושאים בפורום זה
אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה
אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה
אינך יכול/ה לצור סקרים בפורום זה
אינך יכול/ה להצביע בסקרים בפורום זה