Страница: 1 | 2 | 
		
		 
			   
			 
			 
			 
			 
			
 
  
		
     
  
    
Вопрос: Сохранить содержимое PictureBox в файл.
     
    
Добавлено: 04.01.09 03:29
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
    
 Памидорко | Web-сайт: 2hl.net.ru | ICQ: - 
      
       
  
Казалось бы просто, но почему не получается?
 
    
что не так? 
Посмотрел в поиске все, что связано с сохранением картинок. Ничего не получилось...
Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click
        PictureBox1.CreateGraphics.DrawLine(Pens.Black, 0, 0, 50, 50)
        PictureBox1.Image.Save("c:\temp.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)
    End Sub
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 29
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа:
 Памидорко
![]()
![]()
ICQ: - 
Вопросов: 5
Ответов: 17
      
 Web-сайт:  
 Профиль |  | #1
      
Добавлено:  04.01.09 03:39
       
    
       
  
VB 2005 Express Edition
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа:
 Фeнягz
![]()
![]()
![]()
![]()
![]()
![]()
Вопросов: 2
Ответов: 62
      
 Web-сайт:  
 Профиль |  | #2
      
Добавлено:  04.01.09 04:09
       
    
       
  
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа:
 Памидорко
![]()
![]()
ICQ: - 
Вопросов: 5
Ответов: 17
      
 Web-сайт:  
 Профиль |  | #3
      
Добавлено:  04.01.09 04:27
       
    
       
  
спасибо! все работает...
 
    
и еще вопрос... после того, как поверх окна с работающей программой перетащишь любое окно все Graphics в пикчурбоксе исчезают... как сделать, чтобы они не исчезали??? refresh???? 
		
	  
			 
	
		 
    
       
    
Номер ответа: 4 
      
Автор ответа:
 Фeнягz
![]()
![]()
![]()
![]()
![]()
![]()
Вопросов: 2
Ответов: 62
      
 Web-сайт:  
 Профиль |  | #4
      
Добавлено:  04.01.09 06:42
       
    
       
  
Тогда организуй всю прорисовку в процедуре Paint.
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 5 
      
Автор ответа:
 EROS
![]()
![]()
![]()
![]()
Вопросов: 58
Ответов: 4255
 Профиль |  | #5
       
Добавлено:  04.01.09 11:34
       
    
       
  
ЯЯЯ, а нафига эти извращения с API в данном случае??? 
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 6 
      
Автор ответа:
 EROS
![]()
![]()
![]()
![]()
Вопросов: 58
Ответов: 4255
 Профиль |  | #6
       
Добавлено:  04.01.09 11:37
       
    
       
  
у него в коде банальная ошибка потому и не работает.. а API тут по какой фиг?
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 7 
      
Автор ответа:
 Памидорко
![]()
![]()
ICQ: - 
Вопросов: 5
Ответов: 17
      
 Web-сайт:  
 Профиль |  | #7
      
Добавлено:  04.01.09 13:46
       
    
       
  
скажите мне, какая у меня там банальная ошибка.
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 8 
      
Автор ответа:
 Памидорко
![]()
![]()
ICQ: - 
Вопросов: 5
Ответов: 17
      
 Web-сайт:  
 Профиль |  | #8
      
Добавлено:  04.01.09 13:56
       
    
       
  
а еще лучше, как выглядит код без ошибки
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 9 
      
Автор ответа:
 EROS
![]()
![]()
![]()
![]()
Вопросов: 58
Ответов: 4255
 Профиль |  | #9
       
Добавлено:  04.01.09 14:36
       
    
       
  
 
    
ты рисуешь на PictureBox1, а сохраняешь PictureBox1.Image - это два разных контекста! На чем рисуешь то и сохраняй! 
С#
        private void button1_Click(object sender, EventArgs e)
        {
            //' Это на тот случай если в pictureBox1 нет картинки
            if (pictureBox1.Image == null)
            {
                //' создаем новую по размерам pictureBox1 
                Bitmap bitmap = new Bitmap(pictureBox1.Width, pictureBox1.Height);
                //' делаем ее видимой
                pictureBox1.Image = bitmap;
            }
            //' Создаем объект Graphics для картинки чтоб можно
            //' было на ней рисовать.
            using (Graphics graphics = Graphics.FromImage(pictureBox1.Image))
            {
                //' заливаем фон
                graphics.Clear(Color.Black);
                //' рисуем(пишем) какую нибудь фигню
                graphics.DrawString("Малевич: \"Черный квадрат\"", 
                                    this.Font, 
                                    Brushes.White, 
                                    graphics.VisibleClipBounds);
            }
            //' ну и сохраняем наше творчество для потомков
            pictureBox1.Image.Save(@"c:\temp.jpg", ImageFormat.Jpeg);
        }
вот как то так ...
		
	  
			 
	
		 
    
       
    
Номер ответа: 10 
      
Автор ответа:
 EROS
![]()
![]()
![]()
![]()
Вопросов: 58
Ответов: 4255
 Профиль |  | #10
       
Добавлено:  04.01.09 14:38
       
    
       
  
сорри.. с тегами чего то напутал
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 11 
      
Автор ответа:
 EROS
![]()
![]()
![]()
![]()
Вопросов: 58
Ответов: 4255
 Профиль |  | #11
       
Добавлено:  04.01.09 14:47
       
    
       
  
 
    
либо рисовать на картинке, как я показал выше. Либо переопределять процедуру OnPaint и все рисовать там (как уже говорил ЯЯЯ)
		
	  
			 
	
		 
    
       
    
Номер ответа: 12 
      
Автор ответа:
 Памидорко
![]()
![]()
ICQ: - 
Вопросов: 5
Ответов: 17
      
 Web-сайт:  
 Профиль |  | #12
      
Добавлено:  04.01.09 15:08
       
    
       
  
огромное спасибо!
 
    
почему вот только в школе такому не учат?
		
	  
			 
	
		 
    
       
    
Номер ответа: 13 
      
Автор ответа:
 EROS
![]()
![]()
![]()
![]()
Вопросов: 58
Ответов: 4255
 Профиль |  | #13
       
Добавлено:  04.01.09 15:15
       
    
       
  
 
    
а тебе что, школьных предметов мало?
		
	  
			 
	
		 
    
       
    
Номер ответа: 14 
      
Автор ответа:
 Памидорко
![]()
![]()
ICQ: - 
Вопросов: 5
Ответов: 17
      
 Web-сайт:  
 Профиль |  | #14
      
Добавлено:  04.01.09 20:04
       
    
       
  
на C#  все работает...
 
    
пришлось переписать так:
а вот с VB проблемы....
не получилось перевести эту строчку на VB2005
предметы предметами, а курсач писать надо...
		
	  
			 
	
		 
    
       
    
Номер ответа: 15 
      
Автор ответа:
 EROS
![]()
![]()
![]()
![]()
Вопросов: 58
Ответов: 4255
 Профиль |  | #15
       
Добавлено:  04.01.09 20:56
       
    
       
  
 
    
Просто тебе надо было в самом верху добавить директиву Imports System.Drawing.Imaging
точно не помню, а Vb нету под рукой.. но наверное как то так