חברים אני מ י ו א ש

avishayk

New member
חברים אני מ י ו א ש

זו הודעה שלישית שלי פה כבר ביומיים האחרונים... בבקשה מושיע/ה... C# NET. נראה לי שזה מאוד מאוד פשוט ואני סתם מסתבך. אני רוצה בסה"כ לשמור אובייקט PICTUREBOX שאני מצייר עליו. יש לי את האובייקט, אני מפעיל את המחלקה GRAPHICS, יוצר EVENT של תזוזת עכבר וזה מצייר והכל טוב ויפה. כשאני בא לשמור את התמונה כ- JPG, אני מקבל קובייה שחורה בלי מה שצוייר. לדעתי יש לי בעייה בסדר הרישום. אם למישהו יש מושג, ובטוח שיש כאן למישהו, אני אשמח לדוגמא ספציפית. (הרעיון אגב, הוא לשמור חתימה של לקוח כציור). מצ"ב קטעי הקוד שעשיתי: יצירת האובייקטים ב- FORM LOAD:
g=SignPic.CreateGraphics(); bitmap = new Bitmap(SignPic.Width,SignPic.Height,g);​
EVENT של תזוזת עכבר:
private void SignPic_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) { if (e.Button==MouseButtons.Left) { g.FillEllipse(Brushes.Black,e.X-10,e.Y,10,10); } }​
BUTTON לשמירת האובייקט - וכאן הבעייה (אני מקבל קובץ עם קובייה שחורה ללא הציור)
private void BOk_Click(object sender, System.EventArgs e) { bitmap.Save("p.jpg",System.Drawing.Imaging.ImageFormat.Jpeg); }​
 

ייוניי

New member
תנסה

לכתוב בקליק את השורה הזו במקום:
Bitmap bitmap = new Bitmap(SignPic.Width,SignPic.Height,SignPic.CreateGraphics()); SignPic.DrawToBitmap(bitmap, new Rectangle(0,0,SignPic.Width,SignPic.Height); bitmap.Save("p.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);​
ולהוריד את הקוד שב LOAD.
 

avishayk

New member
זורק לי שגיאה

הוא לא יודע מה זה DrawToBitmap.... אני מזכיר שמדובר באובייקט PictureBox.... HELP ME... תודה מראש.
 

ייוניי

New member
אוקי

מצטער חשבתי שמדובר ב NET 2.0... אז ההצעה הבאה שלי אליך היא ליצור בשלב ה LOAD שני אובייקטי Graphics. אחד ל PictureBox כמו שעשית ואחד נוסף ל bitmap בעזרת Graphics.FromImage. עכשיו אתה רק צריך לדאוג שכל פקודה שאתה שולח ל Graphics הראשון תישלח גם לשני וככה תקבל את אותה תמונה שמצויירת על המסך ב Bitmap.
 

avishayk

New member
אחי לא עובד ואני חייב את עזרתך...

חייב דוגמא ממך, נראה לי זה הולך להסתדר.. לפי מה שהבנתי ממך, זה מה שאני כותב ב-EVENT של תזוזת עכבר:
private void SignPic_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) { if (e.Button==MouseButtons.Left) { g=SignPic.CreateGraphics(); g.FillEllipse(Brushes.Black,e.X-10,e.Y,10,10); bitmap = new Bitmap(SignPic.Width,SignPic.Height,g); } }​
וזה שוב, בפעולת BITMAP.SAVE מביא לי קובץ עם קובייה שחורה - כלומר אובייקט ציור ריק כנראה. חייב דוגמא ממך... תודה מראש שבת שלום.
 

rnan

New member
מה לא עושים בשביל חברים

הנה תוכנית עובדת של שמירת חתימה כולל פתיחת דיאלוג איפה לשמור. www.san-stifano.com/1.rar
 

avishayk

New member
../images/Emo2.gif ועל ההפתעה הזו יש לי רק להגיד

תודה רבה!
שבוע טוב.
 
למעלה