Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
 Аватар для Moxer
-9 / 0 / 0
Регистрация: 16.06.2017
Сообщений: 180

Как сделать свой Paint с приближением картинки?

01.06.2018, 09:51. Показов 2740. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

У меня есть код он рисует на панели все верно
Есть второй код он приближает картинку в панели, но они не хотят работать вмести.
Рисую начинаю приближать, уже не рисует

Как сделать чтобы рисовала и можно было приблизить без размытие писклей

Вообщем вот код всей формы: помогите разобраться, еще ниже прикреплю сам проект

C#
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace Paint
{
    public partial class Form1 : Form
    {
        Size StartSize;
        Color CurrentColor = Color.Black;
        bool isPressed = false;
        Point CurrentPoint;
        Point PrevPoint;
        Graphics g;
        private int pbX;
        private int pbw;
        private int pbh;
        private int pbY;
 
        public Form1()
 
        {
            InitializeComponent();
            g = panel1.CreateGraphics();
            StartSize = panel1.Size;
            pbh = panel1.Height;
            pbw = panel1.Width;
            pbX = panel1.Location.X;
            pbY = panel1.Location.Y;
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
 
        private void for_paint()
        {
            Pen p = new Pen(CurrentColor);
            g.DrawLine(p, PrevPoint, CurrentPoint);
        }
 
        private void trackBar1_Scroll(object sender, EventArgs e)
        {
            panel1.Width = StartSize.Width * trackBar1.Value;
            panel1.Height = StartSize.Height * trackBar1.Value;
 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            DialogResult D = colorDialog1.ShowDialog();
            if (D == System.Windows.Forms.DialogResult.OK)
            {
                CurrentColor = colorDialog1.Color;
            }
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            panel1.Refresh();
        }
 
        private void panel1_Click(object sender, EventArgs e)
        {
 
        }
 
        private void panel1_MouseMove(object sender, MouseEventArgs e)
        {
            if (isPressed)
            {
                PrevPoint = CurrentPoint;
                CurrentPoint = e.Location;
                for_paint();
            }
        }
 
        private void panel1_MouseDown(object sender, MouseEventArgs e)
        {
            isPressed = true;
            CurrentPoint = e.Location;
        }
 
        private void trackBar1_Scroll_1(object sender, EventArgs e)
        {
            panel1.Width = StartSize.Width * trackBar1.Value;
            panel1.Height = StartSize.Height * trackBar1.Value;
 
            // Размещаем в центре области
            panel1.Left = pbX + (pbw - panel1.Width) / 2;
            panel1.Top = pbY + (pbh - panel1.Height) / 2;
            
        }
 
        private void panel1_MouseUp(object sender, MouseEventArgs e)
        {
            isPressed = false;
        }
    }
}
Вложения
Тип файла: zip paint.zip (355.4 Кб, 14 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.06.2018, 09:51
Ответы с готовыми решениями:

Как сделать распылитель, как в Paint?
подскажите, как сделать распылитель как в Paint??? я так понимаю, это можно реализовать при помощи рисования линии, только...

Как сделать, чтобы при изменении размера окна паралельно менялись размеры кнопок как в Paint
как сделать что бы при изменении размера окна паралельно менялись размеры кнопок как в Paint. вот исходник, пожалуйста помогите

Как сделать прозрачный фон картинки в Paint
делаю рисунок в пеинте, фон прозрачный (при вставке этого изображения в другое изображение В ПЕИНТЕ), но при использовании в браузере...

3
 Аватар для belalugoci
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
01.06.2018, 11:17
рисование на панели останется до обновления, что у тебя и происходит при zoom, нужно чтобы рисование шло в какой-то графический контекст а он уже отрисовывался на панели. еще, зум чтобы не растягивал пиксели с замыливанием и рисовал потом квадратиками - нужно опять же различать объект как изображение и панель как холст.
0
 Аватар для Moxer
-9 / 0 / 0
Регистрация: 16.06.2017
Сообщений: 180
01.06.2018, 13:49  [ТС]
belalugoci, Можно по пунктам , что мне сделать чтобы исправить все.
0
 Аватар для belalugoci
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
04.06.2018, 03:59
Moxer, как это делается в C# не имею представления, я его только стал изучать, я пишу исходя из логики программирования под Windows. Если бы я графический редактор мог написать за 5 минут то наверное зарабатывал бы программированием, для меня тут работы не на одни выходные.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.06.2018, 03:59
Помогаю со студенческими работами здесь

Как в CorelDRAW/photo paint сделать перспективу для картинки
Иногда есть необходимость фотографировать входные двери для того, чтобы выкладывать на сайт интернет магазина. Проблема в том, что я не...

Paint - как сделать вставку текста
К концу семестра нужно сделать Paint. Все основное, такое как карандаш, кисть, распылитель, линии и т.д. сделал. Вот не знаю, как сделать...

Как сделать нечто похожее на Paint?
Есть одна идейка для приложения, но для этого нужно как то реализовать одну вещь. К примеру есть у нас стол в редакторе, и чтобы при...

Графический редактор - Сделать карандаш как в Paint
Здравствуйте! такая проблема, нужно сделать тип карандаша из Paint, при нажатии на мышь рисует. У меня только нажав на кнопу выбора...

Как сделать перерисовку изображения в обработке условий Paint?
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { gr=pictureBox1->CreateGraphics(); ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru