Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 17.06.2012, 12:59   #1
maxcroud
 
Регистрация: 17.06.2012
Сообщений: 5
Репутация: 10
Вопрос Что я не правильно делаю в функции поворота изображения

Здравствуйте, я новичок на этом форуме и в программировании на C#. Пытаюсь сделать функцию поворота изображения на определенное кол-во градусов, смотрел материалы для C++ на этом форуме. Код получился вроде бы без ошибок, компилятор не ругается, но ничего не отрисовывается, помогите найти что я не правильно сделал, заранее спасибо!
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        public Image rotate(Image image, double degree)
        {
            double[][] matrix = new double[1][];
            Color getColor = new Color();
            Bitmap postImage = new Bitmap(image);
            Bitmap afterImage = new Bitmap(image);
            degree = 180 * degree / Math.PI;
            matrix = new double[][] { new double[] { Math.Cos(degree), -Math.Sin(degree) }, new double[] { Math.Sin(degree), Math.Cos(degree) } };
            for (int x = 0; x <= image.Width; x++)
            {
                for (int y = 0; y <= image.Height; y++)
                {
                    int newX = (int)((x - 10) * matrix[0][0] + (y - 10) * matrix[0][1] + 10);
                    int newY = (int)((x - 10) * matrix[1][0] + (y - 10) * matrix[1][1] + 10);
                    getColor = postImage.GetPixel(x, y);
                    afterImage.SetPixel(newX, newY, getColor);
                }
            }
            return afterImage;
        }

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Point points = new Point(0, 0);
            Image image = Image.FromFile(@"C:\User\user\Рабочий стол\Загрузки\text.jpg");
            Form1.ActiveForm.CreateGraphics();
            e.Graphics.DrawImage(rotate(image, 90), points);
        }
    }
}
Использую Visual C# 2010, в проекте WindowsForm
maxcroud вне форума   Ответить с цитированием
Старый 18.06.2012, 16:29   #2
maxcroud
 
Регистрация: 17.06.2012
Сообщений: 5
Репутация: 10
По умолчанию

и что правда ни кто ответа не знает?
maxcroud вне форума   Ответить с цитированием
Старый 18.06.2012, 16:36   #3
muradov
Пользователь
 
Регистрация: 05.05.2012
Адрес: Копейск
Сообщений: 39
Репутация: 14
По умолчанию

Цитата:
Bitmap postImage = new Bitmap(image);
Bitmap afterImage = new Bitmap(image);
Почему afterImage создается на основе существующего? Нам же как минимум на этот момент неизвестны размеры получаемого изображения.
Используйте Bitmap.RotateFlip
muradov вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поворот изображения, матрица поворота kordax Помощь студентам 9 19.01.2012 23:21
построение графика функции. что не правильно? Irishka.k Assembler 0 23.05.2010 00:36
Что не правильно делаю с free(); Winston123 Общие вопросы C/C++ 25 15.06.2009 21:21
Процедура поворота изображения Илья PHoeNiX Общие вопросы Delphi 3 08.06.2008 13:59
правильно ли я делаю? andrey4623 Общие вопросы Delphi 2 07.03.2008 21:14


17:13.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.