Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.51/51: Рейтинг темы: голосов - 51, средняя оценка - 4.51
0 / 0 / 0
Регистрация: 30.05.2010
Сообщений: 4

Рисование на picturebox и сохранение в файл

15.06.2010, 23:41. Показов 9754. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день,

visual basic 2008
задача: рисовать но нажатию клавиши мышки, и иметь возможность сохранить это все в файл (jpg/bmp).

Что-то я запутался совсем, не могу связать две вещи..

Вроде рисовать на picturebox по нажатию могу, хотя не очень четко получается.
Сохранить тоже могу но не picturebox, а picturebox.image - PictureBox1.Image.Save(...

мне бы наглядный пример, дальше разберусь.

спасибо.

Добавлено через 9 часов 58 минут
Родил с помощью гугл такую рабочую ерунду, но есть много Но!!
Рисует как надо, но вот с сохранением мудрено как-то получается.
Как я понимаю, сразу в image нельзя рисовать мышкой, надо рисовать на picturebox, а по событию MouseUP копировать в Image и отображать через Paint, чтобы не стерелось. Как это сделать не знаю. Помогите. Если не так выражаюсь, поправте и не пинайте.
С VB ток начал разбираться.

VB.NET Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Public Class Form1
 
    Dim x, y, x1, y1 As Single
    Dim g As Graphics
 
    ' получаем начальные координаты мышки при нажатии
    Private Sub PictureBox1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
        If e.Button = MouseButtons.Left Then
            x = e.X
            y = e.Y
        End If
    End Sub
 
    ' рисуем линию от первых координат до текущих
    Private Sub PictureBox1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
        If e.Button = MouseButtons.Left Then
            x1 = e.X
            y1 = e.Y
            g.DrawLine(Pens.Red, x, y, x1, y1)
            x = x1
            y = y1
        End If
    End Sub
 
    ' цвет, курсор облости рисования
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        g = PictureBox1.CreateGraphics()
        PictureBox1.BackColor = Color.White
        PictureBox1.Cursor = Cursors.Cross
    End Sub
 
    ' преобразуем в Image и сохраняем, нашел в гугл :)
    Private Declare Ansi Function BitBlt Lib "gdi32" (ByVal hDestDC As IntPtr, ByVal x As Integer, ByVal y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal hSrcDC As IntPtr, ByVal xSrc As Integer, ByVal ySrc As Integer, ByVal dwRop As Integer) As Integer
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim hdc As IntPtr = g.GetHdc()
        Dim bm As New Bitmap(PictureBox1.Width, PictureBox1.Height, Imaging.PixelFormat.Format24bppRgb)
        Dim bi As Graphics = Graphics.FromImage(bm)
        Dim hdc2 As IntPtr = bi.GetHdc()
        BitBlt(hdc2, 0, 0, PictureBox1.Width, PictureBox1.Height, hdc, 0, 0, &HCC0020&)
        bi.ReleaseHdc(hdc2)
        bi.Dispose()
        g.ReleaseHdc(hdc)
        bm.Save("c:\1.bmp", Imaging.ImageFormat.Bmp)
        bm.Dispose()
    End Sub
 
    ' очищяем Picturebox
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        g.FillRectangle(Brushes.White, 0, 0, PictureBox1.Width, PictureBox1.Height)
    End Sub
End Class
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.06.2010, 23:41
Ответы с готовыми решениями:

Рисование в PictureBox и сохранение рисунка
Создается простой графический редактор на C#. Проблема следующая: в PictureBox загружается рисунок из файла. Пользователь рисует в...

Рисование на php и сохранение в файл
Здравствуйте! В сети много примеров по рисованию на php но все сводятся к тому, что мы создаем php-файл с заголовком image/jpg(png) и...

Сохранение содержимого pictureBox в файл
Я пишу графический редактор. Создали изображение (картинку) и ее надо сохранить в файл с каким-нибудь графическим расширением (bmp, jpg) ...

7
 Аватар для Alex77755
11523 / 3810 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
16.06.2010, 10:07
Начни с того, что выбери правильный раздел!
Здесь тебе не NET!
0
0 / 0 / 0
Регистрация: 30.05.2010
Сообщений: 4
16.06.2010, 10:55  [ТС]
Цитата Сообщение от Alex77755 Посмотреть сообщение
Начни с того, что выбери правильный раздел!
Здесь тебе не NET!
хм, знать бы еще в чем разница.... ))
Неделю в vb упражняюсь, тема "visual basic", скачал с сайта МС visual basic 2008 express.
0
 Аватар для Alex77755
11523 / 3810 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
16.06.2010, 10:58
Да так. Почти ничем. Оба - языки программирования.
0
0 / 0 / 0
Регистрация: 30.05.2010
Сообщений: 4
16.06.2010, 11:04  [ТС]
Цитата Сообщение от Alex77755 Посмотреть сообщение
Да так. Почти ничем. Оба - языки программирования.
чем умничать, лучше бы по теме чего нить подсказал...
0
 Аватар для Alex77755
11523 / 3810 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
16.06.2010, 11:35
Я ж и говорю!
Был бы VB6 - подсказал!
Задай вопрос в разделе NET
Там больше спецов
Здесь тоже встречаются полиглоты и отвечают и по Паскалю и по Делфи.
Даже встречались ответы по Асемблеру.
Но это, скорее, исключению, чем правило
Так, что в пузырь не лезь, а прислушайся к совету
0
 Аватар для Nikons
0 / 0 / 0
Регистрация: 19.12.2010
Сообщений: 9
20.12.2010, 19:04
А как можно изменять параметры у рисовалки(Менять цвет линии и толщину)
0
0 / 0 / 3
Регистрация: 04.11.2016
Сообщений: 107
12.11.2017, 17:34
вы форумчане - люди жестокие: человеку нужен ответ, а вы больше говорите, чем делаете
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.11.2017, 17:34
Помогаю со студенческими работами здесь

Сохранение рисунка из picturebox в файл
Добрый день, имеется picturebox (230x230), на нем нарисован polygon (см. вложение) как сохранить этот полигон в битмап (не все...

Сохранение изображений в PictureBox'ах в файл
вот часть кода, для создания большой картинки из маленьких, как можно ее сохранить в один файл .png? PictureBox RegionPB =...

Сохранение нарисованного в PictureBox в отдельный файл
Здравствуйте! У меня никак не получается сохранить измененное изображение, находящееся в PictureBox, в отдельный файл. Пробовал по всякому...

Сохранение и открытые изображений из pictureBox в файл
Всем привет. Как сохранить то что нарисовано в picturebox в файл? Есть к примеру pictureBox1 и myStream(путь куда надо сохранить). Как...

Сохранение нарисованного в pictureBox в bmp-файл
Доброе время суток! Люди, подскажите пожалуйста как можно сохранить нарисованное на pictureBox в файл *.bmp, *.png или любой другой.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Результаты исследования от команды MCM (март 2025 г.)
Programma_Boinc 07.04.2025
Результаты исследования от команды MCM (март 2025 г. ) В рамках наших текущих исследований мы продолжаем изучать гены, которые имеют наибольшую вероятность развития рака легких, выявленные в рамках. . .
Рекурсивные типы в Python
py-thonny 07.04.2025
Рекурсивные типы - это типы данных, которые определяются через самих себя или в сочетании с другими типами, которые в свою очередь ссылаются на исходный тип. В мире программирования такие структуры. . .
C++26: Объединение и конкатенация последовательностей и диапазонов в std::ranges
NullReferenced 07.04.2025
Работа с последовательностями данных – одна из фундаментальных задач, с которой сталкивается каждый разработчик. C++ прошел длинный путь в эволюции средств для манипуляции коллекциями – от. . .
Обмен данными в микросервисной архитектуре
ArchitectMsa 06.04.2025
Когда разработчики начинают погружаться в мир микросервисов, они часто сталкиваются с парадоксальным правилом: "два сервиса не должны делить один источник данных". Эта мантра звучит повсюду в. . .
PostgreSQL в Kubernetes: Автоматизация обслуживания с CNPG
Mr. Docker 06.04.2025
Администраторы баз данных сталкиваются с целым рядом проблем при обслуживании PostgreSQL в Kubernetes: как обеспечить правильную репликацию данных, как настроить автоматическое переключение при. . .
Async/await в TypeScript
run.dev 06.04.2025
Асинхронное программирование — это подход к разработке программного обеспечения, при котором операции выполняются независимо друг от друга. В отличие от синхронного выполнения, где каждая последующая. . .
Многопоточность в C#: Синхронизация потоков
UnmanagedCoder 06.04.2025
Многопоточное программирование стало неотъемлемой частью разработки современных приложений на C#. С появлением многоядерных процессоров возможность выполнять несколько задач параллельно значительно. . .
TypeScript: Классы и конструкторы
run.dev 06.04.2025
TypeScript, как статически типизированный язык, построенный на основе JavaScript, привнес в веб-разработку новый уровень надежности и структурированности кода. Одним из важнейших элементов этой. . .
Многопоточное программирование: Rust против C++
golander 06.04.2025
C++ существует уже несколько десятилетий и его поддержка параллелизма постепенно наращивалась со временем. Начиная с C++11, язык получил стандартную библиотеку для работы с потоками, а в последующих. . .
std::vector в C++: от основ к оптимизации производительности
NullReferenced 05.04.2025
Для многих программистов знакомство с std::vector происходит на ранних этапах изучения языка, но между базовым пониманием и подлинным мастерством лежит огромная дистанция. Контейнер std::vector. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер