0 / 0 / 0
Регистрация: 20.11.2016
Сообщений: 29
1

Как повернуть изображение в DataGridView на 90° по нажатию на кнопку?

24.07.2018, 14:33. Показов 2482. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Хз как написать чтоб повернуть
C#
1
dataGridView7.CurrentRow.Cells[1].Value =
Заранее благодарю
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.07.2018, 14:33
Ответы с готовыми решениями:

по нажатию на кнопку повернуть экран (из портретного в ландшафтный, потом наоборот)
Только начинаю осваивать. Как по нажатию на кнопку сменить ориентацию экрана?

Как при нажатию на кнопку удалить все строки из первого столбца в datagridview?
Как при нажатий на кнопку удалисть все строки из превого столбца в datagridview ? int...

По нажатию на кнопку отобразить изображение, выбранное с помощью радиокнопок
Даны три картинки под каждой есть своя радиокнопка, по нажатию на радиокнопку выбирается одна из...

Вычислить средний балл в DataGridView по нажатию на кнопку
Есть результаты экзамена... Необходимо вычислить средний балл (Математика + Физика +...

7
126 / 106 / 31
Регистрация: 17.03.2016
Сообщений: 445
Записей в блоге: 1
24.07.2018, 14:45 2
поверни изображения а потом присвой уже повернутое
0
0 / 0 / 0
Регистрация: 20.11.2016
Сообщений: 29
24.07.2018, 18:47  [ТС] 3
Сделал, не работает(
C#
1
2
3
Bitmap image = dataGridView7.CurrentRow.Cells[1].Value as Bitmap;
            image.RotateFlip(RotateFlipType.Rotate90FlipNone);
            dataGridView7.CurrentRow.Cells[1].Value = image;
EN
System.NullReferenceException: "Object reference not set to an instance of an object."

image было null.
RU
Система.NullReferenceException: "объект не задана ссылка на экземпляр объекта."

изображение было нуль.
0
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
24.07.2018, 18:59 4
Myttan007, Вам правильно сказали.
C#
1
2
3
Image image = new Bitmap("image.jpg");
image.RotateFlip(RotateFlipType.Rotate180FlipY);
dataGridView7.CurrentRow.Cells[1].Value = image
Переворачивайте до того как запихнуть в dgv
0
0 / 0 / 0
Регистрация: 20.11.2016
Сообщений: 29
24.07.2018, 19:55  [ТС] 5
Так не удобно, потому что есть кнопка которая запихивает изображение в DataGridView через OpenFileDialog, и две кнопки поворота, а если я хочу повернуть изображение, будет глупо опять запихивать через OpenFileDialog
Поэтому нужно как-то изъять изображение из DataGridView и пихнуть уже повернутое.
Вот так сделал, но не работает
C#
1
Image image = dataGridView7.CurrentRow.Cells[1].Value as Bitmap;
0
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
24.07.2018, 21:18 6
Лучший ответ Сообщение было отмечено Myttan007 как решение

Решение

Цитата Сообщение от Myttan007 Посмотреть сообщение
Поэтому нужно как-то изъять изображение из DataGridView и пихнуть уже повернутое.
Не нужно ничего ниоткуда изымать. Нужно хранить загруженные изображения в списке:
Кликните здесь для просмотра всего текста
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
List<Bitmap> imageList = new List<Bitmap>();
 
//Загружаем изображения
private void Form1_Load(object sender, EventArgs e)
{
    OpenFileDialog ofg = new OpenFileDialog();
    while (ofg.ShowDialog() == DialogResult.OK)
    {
        Bitmap bmp = (Bitmap)Image.FromFile(ofg.FileName);
        imageList.Add(bmp);
        dataGridView1.Rows.Add(bmp);
    }
}
 
//Кнопка поворота
private void button1_Click(object sender, EventArgs e)
{
    if (dataGridView1.SelectedRows.Count == 0)
        return;
    int index = dataGridView1.SelectedRows[0].Index;
    imageList[index].RotateFlip(RotateFlipType.Rotate90FlipNone);
    dataGridView1.SelectedRows[0].SetValues(imageList[index]);
    dataGridView1.Invalidate();
}
1
0 / 0 / 0
Регистрация: 20.11.2016
Сообщений: 29
24.07.2018, 21:37  [ТС] 7
Спасибо за помощь, я разобрался. Кому нужно будет вот
C#
1
2
3
4
5
6
7
DataGridViewRow row;
            row = dataGridView7.CurrentRow;
            Byte[] picture = (Byte[])row.Cells[1].Value;
            MemoryStream ms = new MemoryStream(picture);
            Image Img = Image.FromStream(ms);
            Img.RotateFlip(RotateFlipType.Rotate90FlipXY);
            dataGridView7.CurrentRow.Cells[1].Value = Img;
0
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
24.07.2018, 21:56 8
Цитата Сообщение от Myttan007 Посмотреть сообщение
я разобрался
Если так уж не хочется дополнительный список создавать, то можно и проще сделать:
C#
1
2
3
4
5
DataGridViewRow row;
row = dataGridView1.CurrentRow;
Bitmap Img = new Bitmap((Bitmap)row.Cells[0].Value);
Img.RotateFlip(RotateFlipType.Rotate90FlipXY);
dataGridView1.CurrentRow.Cells[0].Value = Img;
А вот тут Byte[] picture = (Byte[])row.Cells[1].Value; вообще исключение вылезает...
0
24.07.2018, 21:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.07.2018, 21:56
Помогаю со студенческими работами здесь

По нажатию на кнопку показывать небольшое изображение в случайном месте блока DIV
Добрый день! подскажите, как на js написать программу, которая по нажатию на кнопку показывает не...

Как повернуть изображение?
Замучился искать. Много есть вариантов но они нерабочие, а те, что работают вращают изображение в...

Как повернуть изображение?
Здравствуйте! Я загружаю Gif изображение в Bitmap и мне нужно чтобы оно поворачивалось по...

Как повернуть изображение
Имеется объект типа QImage, мне требуется его повернуть. Вот код #include &quot;mainwindow.h&quot;...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru