שאלה 2 ג.
4 posters
עמוד 1 מתוך 1
שאלה 2 ג.
עשיתי את הסעיפים עם הקבצי TEXT,
השאלה היא לגבי הקבצי בינארי, מישהו יודע מה הפורמט המדוייק של הפיקסלים?
הכנסתי לקובץ בינארי את הכותרת עם הרוחב וגובה וכו' אבל אני לא מוצא
בגוגל איך נראית הטבלה של הפיקסלים כדי לנתח אותם לפיקסל אפור.
מישהו יכול לשים פה את הפקודה שלו של ה- FREAD מהקובץ PPM (קליטת 3 צבעים)
ואת הפקודה של ה- FWRITE של הקובץ PGM (כתיבת פיקסל אפור אחד).
תודה.
השאלה היא לגבי הקבצי בינארי, מישהו יודע מה הפורמט המדוייק של הפיקסלים?
הכנסתי לקובץ בינארי את הכותרת עם הרוחב וגובה וכו' אבל אני לא מוצא
בגוגל איך נראית הטבלה של הפיקסלים כדי לנתח אותם לפיקסל אפור.
מישהו יכול לשים פה את הפקודה שלו של ה- FREAD מהקובץ PPM (קליטת 3 צבעים)
ואת הפקודה של ה- FWRITE של הקובץ PGM (כתיבת פיקסל אפור אחד).
תודה.
shay86- by ref
- מספר הודעות : 14
Join date : 11.04.09
כתיבה וקריאה בקבצים בינארים
היי שי
התרגיל החמישי הוא אחד העמוסים. אני זוכרת כמה וכמה לילות לבנים בתקופה הזאת.
בכל אופן, כדי לקרוא 3 ערכי צבעים (=פיקסל אחד) מקובץ בינארי יש להחזיק משתנים המציינים את שלושת הצבעים
r, g, b
ולהריץ את הפקודות הבאות:
י
- קוד:
fread(&r, sizeof(char), 1, file);
fread(&g, sizeof(char), 1, file);
fread(&b, sizeof(char), 1, file);
הפקודות לכתיבת פיקסל אחד אפור לקובץ PGM:
י
- קוד:
fwrite(pixel, sizeof(char), 1, file);
Re: שאלה 2 ג.
תודה אבל זה עדיין לא עובד לי,
האם המשתנים R,G,B צריכים להיות מסוג CHAR או INT?
בעיקרון אחרי שקראתי את הכותרת, אני מגיע לשורות של הפיקסלים,
כשאני קורא פיקסל פיקסל אני לא אמור לראות במשתנה מה הערך שלו?
נניח קראתי פיקסל R, אם אני בודק את ערך המשתנה ב-DEBUG אני לא אמור לראות ערך מספרי?
כי אני קורא שם סוג של זבל, אולי זה פשוט בבינארי? (למרות שאני מנסה להפוך את הקובץ PGM
הסופי ל- JPEG וזה לא מצליח).
האם המשתנים R,G,B צריכים להיות מסוג CHAR או INT?
בעיקרון אחרי שקראתי את הכותרת, אני מגיע לשורות של הפיקסלים,
כשאני קורא פיקסל פיקסל אני לא אמור לראות במשתנה מה הערך שלו?
נניח קראתי פיקסל R, אם אני בודק את ערך המשתנה ב-DEBUG אני לא אמור לראות ערך מספרי?
כי אני קורא שם סוג של זבל, אולי זה פשוט בבינארי? (למרות שאני מנסה להפוך את הקובץ PGM
הסופי ל- JPEG וזה לא מצליח).
shay86- by ref
- מספר הודעות : 14
Join date : 11.04.09
Re: שאלה 2 ג.
כל ערך של צבע בפיקסל הוא
char
אחד.
אני נוהגת לכתוב בתחילת תוכנית:
- קוד:
typedef unsigned char Byte;
ואז יש לי טיפוס מסוג בית, ובו אני משתמת.
י
לא תצליח לכתוב לקובץ ג'יי-פי-ג'י, אלא אם כן תכתוב זאת בפורמט הייחודי שלו. כמו של- פי-פי-אם יש את הפורמט המיוחד שלו, כך גם לכל קובץ אחר.
י
בזמן הדיבאג, ולאחר שקלטתי ערכים לתוך
r, g, b
אני יכולה לראות אותם בווטץ'. אני רואה את הערך המספרי שלהם, ובגרשיים את התו שהם מסמלים באסקי, אם קיים כזה.
סביר להניח שאם אתה קורא קובץ בינארי, לרוב המספרים שאתה קורא לא יתאימו לתו אסקי קיים.
י
Re: שאלה 2 ג.
לא הבנת את הכוונה שלי,
אני התכוונתי שלאחר שיש לי קובץ PGM מוכן ע"י התוכנית שלי,
אני רוצה להשתמש בתוכנה חיצונית להפוך אותו ל- JPEG (ככה יש לי אינדיקציה שהכל עובד).
זה מה שעשיתי גם בסעיפים א, ב והכל היה טוב.
משום מה כאן התוכנה לא מצליחה לקרוא את הקובץ לכן אני משער שעשיתי משהו לא נכון,
אחרי שקלטתי את ה- R,G,B איך אני הופך אותם לפיקסל אחד? (הרי זה CHAR).
האם:
אני התכוונתי שלאחר שיש לי קובץ PGM מוכן ע"י התוכנית שלי,
אני רוצה להשתמש בתוכנה חיצונית להפוך אותו ל- JPEG (ככה יש לי אינדיקציה שהכל עובד).
זה מה שעשיתי גם בסעיפים א, ב והכל היה טוב.
משום מה כאן התוכנה לא מצליחה לקרוא את הקובץ לכן אני משער שעשיתי משהו לא נכון,
אחרי שקלטתי את ה- R,G,B איך אני הופך אותם לפיקסל אחד? (הרי זה CHAR).
האם:
- קוד:
fprintf(fp_pgm, "%c", ((r+g+b)/3));
shay86- by ref
- מספר הודעות : 14
Join date : 11.04.09
Re: שאלה 2 ג.
בכיף
נראה שהשורה האחרונה שכתבת זה בדיוק מה שצריך.
נראה לי שכדאי לקחת בחשבון שגם אם התמונה הסופית לא נראית מושלמת, לא בטוח שזה באג בתוכנית אלא בעיה אחרת שקשורה אולי לפורמט.
אני הגשתי את התרגיל שלי עם עיוות בתמונה שנראה כמו באג ובסוף קיבלתי את כל הנקודות... למרות שאולי הבודקים פשוט התייאשו ונמאס להם לבדוק את הכל
Re: שאלה 2 ג.
התוכנית הזאת הוציאה לי את המיץ!!!
ועכשיו אתם חייבים לגלות לי איך אתם כותבים את ה"קוד" הזה בהודעות שלכם!!
ועכשיו אתם חייבים לגלות לי איך אתם כותבים את ה"קוד" הזה בהודעות שלכם!!
Re: שאלה 2 ג.
כן, זאת חתיכת שאלה.
ככה כותבים בלוק של קוד (רק שים לב שהוספתי רווח ליד המילה "קוד" כדי שלא יהפוך באמת לבלוק של קוד...)
י
[code ]
for (int i = ....
[/code]
for (int i = ....
[/code]
עמוד 1 מתוך 1
Permissions in this forum:
אתה לא יכול להגיב לנושאים בפורום זה