כותב |
|
thunder` משתמש מתחיל

הצטרף / הצטרפה: 01 January 2007
משתמש: מנותק/ת הודעות: 10
|
נשלח בתאריך: 16 February 2007 בשעה 15:48 | | IP רשוּם
|
|
|
|
שלום אני כותב ספרייה לקבצי BMP בC++ שתכיל כל מיני פונקציות שימושיות להמשך הפרויקט שאני עובד עליו אני צריך רעיון לאלגוריתם פשוט (איכות התמונה פחות חשובה לי - כל שאין צורך באלגוריתם מסובך יותר מדיי) שהקלט שלו יהיה שם תמונה על המחשב בפורמט BMP, שם תמונת פלט ו2 מספרים המבטאים אורך ורוחב של התמונה החדשה.
האלגוריתם יקטין/יגדיל את התמונה לפי הצורך למימדים שהתקבלו בקלט
למישהו יש רעיון מה לעשות כאן?
|
חזרה לתחילת העמוד |
|
|
Fate פורומיסט על


הצטרף / הצטרפה: 25 October 2005
משתמש: מנותק/ת הודעות: 571
|
נשלח בתאריך: 17 February 2007 בשעה 03:38 | | IP רשוּם
|
|
|
|
תעבור על כל פיקסל בגודל החדש.... תעשה חישוב של איזה פיקסל זה יוצא בתמונה המקורית. ותעתיק אותו... בשביל איכות יותר טובה אפשר לעשות חישוב לא שלם ולקחת באחוזים גם מהצבעים שליד אותו פיקסל...
למשל אתה רוצה להקטין תמונה של 200 על 200 ל 100 על 100.... אז פיקסל 0,0 יהיה 0,0 וגם 0,1 וגם 1,0 וגם 1,1....
מקווה שאני ברור 
|
חזרה לתחילת העמוד |
|
|
thunder` משתמש מתחיל

הצטרף / הצטרפה: 01 January 2007
משתמש: מנותק/ת הודעות: 10
|
נשלח בתאריך: 17 February 2007 בשעה 11:32 | | IP רשוּם
|
|
|
|
אני חושב שהבנתי אותך, אבל במבנה של BMP יש להוסיף רווחים בסוף כל שורה. מספר הרווחים הוא שארית החלוקה של רוחב התמונה ב4. מה קורה במצב שבו גודל התמונה המקורית, למשל רוחב 200 גובה 150 ואני רוצה להקטין אותה לרזולוציה של 60 * 60. כי זו היא המטרה הסופית של הפונקציה הזאת, להקטין/להגדיל מכל רזולוציה לכל רזולוציה ולא להישאר בתחומי הרזולוציה המקורית.
שים לב שנאמר שאנחנו נשארים גם ביחסי הרזולוציה המקורית ונקטין את התמונה 200 על 150 פי 3, מה נעשה עם שארית החלוקה ב3? כיצד נוסיף רווחים?
תודה על העזרה!
|
חזרה לתחילת העמוד |
|
|
Fate פורומיסט על


הצטרף / הצטרפה: 25 October 2005
משתמש: מנותק/ת הודעות: 571
|
נשלח בתאריך: 17 February 2007 בשעה 13:56 | | IP רשוּם
|
|
|
|
זה בדיוק אותו אלגוריתם.... רק החישוב שלך יתן לך פיקסלים לא שלמים שמהם תצטרך לקחת צבע...
נגיד הפיקסל של 10,5... הצבע שלו יצטרך לבוא מ5.7,2.23 (זה רק דוגמא אין לי כוח לחשב מאיזה רזולוציה מגדילים )
עכשיו יש לך שני אפשרויות מה לעשות במקרה הזה... או לעגל ל6,3.... או לקחת באחוזים מהצבעים הסמוכים.... (שזה יותר קשב לממש)
|
חזרה לתחילת העמוד |
|
|
thunder` משתמש מתחיל

הצטרף / הצטרפה: 01 January 2007
משתמש: מנותק/ת הודעות: 10
|
נשלח בתאריך: 17 February 2007 בשעה 20:26 | | IP רשוּם
|
|
|
|
אז אני בעצם מעגל את הפיקסל שממנו אני אמור לקחת, ולוקח מהפיקסל שיצא אחרי שעיגלתי את הצבע שלו...
ועם הרווחים שצריך להוסיף אותו סיפור? נגיד אני רוצה תמונה קטנה פי 3, אז אני יעשה שארית החלוקה של width/3 ב4?
וכשאני מגדיל תמונה, אז המצב יהיה שאני אקח אותו צבע מאותו פיקסל לכמה פיקסלים בתמונה הגדולה יותר, אז זו בעצם מריחה של התמונה
הבנתי בסדר?
אוקי אז עכשיו יש טיול שנתי ואחריו אני יחזור לעבודה
תודה לך
|
חזרה לתחילת העמוד |
|
|
Fate פורומיסט על


הצטרף / הצטרפה: 25 October 2005
משתמש: מנותק/ת הודעות: 571
|
נשלח בתאריך: 18 February 2007 בשעה 01:15 | | IP רשוּם
|
|
|
|
הבנתה בסדר... כמו שאמרתי אם אתה מגדיל את התמונה אז יהיו פיקסלים שפיקסל מקור שלהם הוא אותו אחד... ולכן עדיף לעשות לקיחת צבע באחוזים מפיקסלים סמוכים, אבל זה קשה יותר...
|
חזרה לתחילת העמוד |
|
|