По курсу: «Компьютерная графика» 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

По курсу: «Компьютерная графика»



Пояснительная записка

К курсовой работе

По курсу: «Компьютерная графика»

Тема: «Выдача на экран изображения с эффектами»

 

Выполнил:

студент группы A-31

 

Хараян Д. Г. _______________

(подпись)

Проверил доцент кафедры МОП ЭВМ:

Селянкин В.В. _______________

(подпись)

 

Дата: ___.___.2013_ г.

 

Таганрог 2013г.

 

Аннотация

Программный продукт представляет компьютерную программу, реализующую добавление одного или нескольких эффектов к изображению. С помощью программы можно выбрать необходимое изображение и применить эффект (эффекты), а после сохранить полученное изображение в одном из широко используемых графических форматов.

Приложение написано в среде Windows, язык программирования – Visual C#, приложение предназначено для использования на персональном компьютере.


 

Содержание

 

Техническое задание. 4

Постановка задачи. 5

Введение. 6

1. Описание алгоритмов реализации эффектов для изображения. 7

1.1. Наложение телевизионных помех (имитация). 7

1.2. Случайно разбросанные квадратики. 7

1.3. Деление изображения линиями на 4 части от центра к краям.. 7

1.4. Деление изображения линиями на 4 части от краев к центру. 8

1.5. Алгоритм установки прозрачности изображения. 8

1.6. Алгоритм восстановления прозрачного изображения. 8

1.7. Алгоритм получения негатива изображения. 9

1.8. Алгоритм фильтрации изображения для ослабления перепадов яркости. 9

1.9. Алгоритм получения черно-белого изображения. 9

2. Описание программного продукта. 10

2.1. Программно-аппаратные требования. 10

2.2. Язык и среда программирования. 10

2.3. Входные и выходные данные. 10

2.4. Структура программы.. 11

2.5. Описание структурных элементов программы.. 11

2.6. Описание интерфейса и инструкция пользователю.. 15

Заключение. 20

Библиографический список. 21

Приложение 1. 22

Приложение 2. 39


Техническое задание


Постановка задачи

 

Следует разработать программу, выдающую на экран изображение с различными графическими эффектами: квадратиками, случайно разбросанными по экрану, случайными точками, от центра к краям экрана, от краев к центру, моделированием проявления фотографии в проявителе.

В качестве изображения берется файл в графическом формате BMP, PCX, GIF, TIF, WMF или любом другом.


 

Введение

Понятие "компьютерная графика" существует уже давно. Трудно определить, когда именно и кем были разработаны первые понятия компьютерной графики. Первые вычислительные машины не имели отдельных средств для работы с графикой, однако уже использовались для получения и обработки изображений. Программируя память первых электронных машин, построенную на основе матрицы ламп, можно было получать узоры. В настоящее время компьютерная графика - это огромный мир, такой же, как мир операционных систем, или программирования, это нечто большее, чем просто графика.

Компьютерная графика и эффекты применяются в самых разнообразных сферах деятельности человека:

• в кино;

• в сфере рекламы;

• в полиграфии

• в информационных сферах (телевидение, интернет);

• в сфере игростроения, и многих других.

Киноиндустрия получает ежегодную многомиллионную прибыль от фильмов, в которых использованы современные спецэффекты. Вспомнить хотя бы такие известные фантастические фильмы, как «Люди в черном», «Матрица» и тому подобные. Во всех них использовалась компьютерная графика, создающая эффект максимальной реалистичности происходящего. Смотря на все происходящее в фильме, создается впечатление, что все это было на самом деле.

Компьютерная графика широко используется на телевидении. Все больше и больше последнее время компьютерная графика используется при создании красивых телевизионных заставок, которые вещают на телеканалах. Красивые заставки - это залог успеха телеканала.

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

В мире компьютерной графики отдельную роль занимают графические эффекты, которые применяются к изображениям.

Данная курсовая работа посвящена созданию программы, в которой к исходному изображению применяется один или несколько графических эффектов. В принципе, данная программа может являться частью графического редактора, так как в программе реализуются некоторые его функции обработки изображений.

Входные и выходные данные

Входными данными являются изображения таких форматов как BMP, PCX, GIF, TIF, WMF или любых других.

Выходными данными являются изображения, выдаваемые на экран в окне программы, которые так же можно сохранить в форматах JPG либо BMP с разрешением 640*480 в любом доступном месте.

 

Структура программы

Программный продукт состоит из одного главного окна, являющегося объектом класса Form библиотеки.NET Framework 4.5.

Окно располагает на себе:

· графическое окно, в котором по сути происходит демонстрация эффектов – объект класса PictureBox;

· управляющие кнопки – объекты класса Button;

· пояснительные надписи – объекты класса TextBox;

· объект класса OpenFileDialog, предназначенный для инициализации диалога открытия файла;

· объект класса SaveFileDialog, предназначенный для инициализации диалога сохранения файла;

Заключение

Для курсовой работы была выбрана оптимальная среда Windows и язык разработки, подобрана необходимая литература, изучены и использованы простые алгоритмы для реализации графических эффектов к изображению, была разработана и отлажена программа.

Для реализации алгоритмов использовался такой язык программирования, как Visual С#, использовалась среда программирования Microsoft Visual Studio 2012.

Отладка и тестирование проводились в среде разработки Microsoft Visual Studio 2012.

Результатом данной курсовой работы является программный продукт, который реализует добавление к изображению различных эффектов со статической и динамической демонстрацией.

Программа работает корректно, имеется возможность для добавления других эффектов.

Библиографический список

1) Н. Б. Культин «Visual C# в задачах и примерах» БХВ-Петербург, 2009

 

2) Селянкин В.В., Шилов Д.А. Руководство к лабораторным работам «Двумерная обработка растровых изображений» по курсу «Компьютерная графика», Таганрог: Изд-во ТРТУ, 2001. 28с.

 

3) MSDN – сеть разработчиков Microsoft

http://msdn.microsoft.com/ru-ru#fbid=PSBoak1OByD

 


 

Приложение 1

 

Листинг программного продукта:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Drawing.Imaging;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Runtime.InteropServices;

 

namespace Negative

{

public partial class Form1: Form

{

public Form1()

{

InitializeComponent();

 

}

public Timer tmr1;

public Image ishImg;

public Int32 ix = 2;

public Int32 iy = 2;

public bool ishImgenable = false;

 

private void MakeGray(Bitmap bmp) //Преобразование изображения в черно-белое

{

// Задаём формат Пикселя

PixelFormat pxf = PixelFormat.Format24bppRgb;

 

// Получаем данные картинки

Rectangle rect = new Rectangle(0, 0, bmp.Width, bmp.Height);

//Блокируем набор данных изображения в памяти

BitmapData bmpData = bmp.LockBits(rect, ImageLockMode.ReadWrite, pxf);

 

// Получаем адрес первой линии

IntPtr ptr = bmpData.Scan0;

 

// Задаём массив из Byte и помещаем в него набор данных.

// int numBytes = bmp.Width * bmp.Height * 3;

//На 3 умножаем - поскольку RGB цвет кодируется 3-мя байтами

int numBytes = bmpData.Stride * bmp.Height;

int widthBytes = bmpData.Stride;

byte[] rgbValues = new byte[numBytes];

 

// Копируем значения в массив

Marshal.Copy(ptr, rgbValues, 0, numBytes);

 

// Перебираем пикселы по 3 байта на каждый и меняем значения

for (int counter = 0; counter < rgbValues.Length; counter += 3)

{

 

int value = rgbValues[counter] + rgbValues[counter + 1] + rgbValues[counter + 2];

byte color_b = 0;

 

color_b = Convert.ToByte(value / 3);

 

 

rgbValues[counter] = color_b;

rgbValues[counter + 1] = color_b;

rgbValues[counter + 2] = color_b;

 

}

// Копируем набор данных обратно в изображение

Marshal.Copy(rgbValues, 0, ptr, numBytes);

 

// Разблокируем набор данных изображения в памяти

bmp.UnlockBits(bmpData);

}

 

private Color _GetSumOfColor(Color[] colors) // Рассчет среднего значения изменения яркости d

{

int rSum = 0;

int gSum = 0;

int bSum = 0;

foreach (var color in colors)

{

rSum += color.R;

gSum += color.G;

bSum += color.B;

}

if (rSum < 0) rSum = 0;

if (rSum > 255) rSum = 255;

if (gSum < 0) gSum = 0;

if (gSum > 255) gSum = 255;

if (bSum < 0) bSum = 0;

if (bSum > 255) bSum = 255;

return Color.FromArgb(rSum, gSum, bSum);

}

 

private Color _SubColors(Color x, Color y) // Рассчет разницы яркости одной из восьми точек вокруг обрабатываемой и обрабатываемой по интенсивности каждого цвета RGB

{

return Color.FromArgb(Math.Abs(x.R - y.R), Math.Abs(x.G - y.G), Math.Abs(x.B - y.B));

}

 

private Bitmap _IncreaseBrightness(Image original, int sign)// Изменения яркости

{

Bitmap bmp = new Bitmap(original);

var points = new[] { new Point(-1, 1), new Point(0,1), new Point(1,1),

new Point(-1, 0), new Point(0,0), new Point(1,0),

new Point(-1, -1), new Point(0,-1), new Point(1,-1) };

var outBmp = new Bitmap(bmp.Width, bmp.Height);

int w = bmp.Width;

int h = bmp.Height;

for (int y = 0; y < h; y++)

{

for (int x = 0; x < w; x++)

{

int count = 0;

foreach (var point in points)

{

if (!((x + point.X >= 0) && (x + point.X < w) && (y + point.Y >= 0) && (y + point.Y < h))) ++count;

}

if (count == 0)

{

Color d = _GetSumOfColor(new[]{_SubColors(bmp.GetPixel(x-1, y+1), bmp.GetPixel(x,y)),

_SubColors(bmp.GetPixel(x, y+1), bmp.GetPixel(x,y)),

_SubColors(bmp.GetPixel(x+1, y+1), bmp.GetPixel(x,y)),

_SubColors(bmp.GetPixel(x-1, y), bmp.GetPixel(x,y)),

_SubColors(bmp.GetPixel(x+1, y), bmp.GetPixel(x,y)),

_SubColors(bmp.GetPixel(x-1, y-1), bmp.GetPixel(x,y)),

_SubColors(bmp.GetPixel(x, y-1), bmp.GetPixel(x,y)),

_SubColors(bmp.GetPixel(x+1, y-1), bmp.GetPixel(x,y))

});

double r = 0;

double g = 0;

double b = 0;

if (sign == 0)

{

r = bmp.GetPixel(x, y).R + d.R;

g = bmp.GetPixel(x, y).G + d.G;

b = bmp.GetPixel(x, y).B + d.B;

}

else if (sign == 1)

{

r = bmp.GetPixel(x, y).R - d.R;

g = bmp.GetPixel(x, y).G - d.G;

b = bmp.GetPixel(x, y).B - d.B;

}

else if (sign == 2)

{

if (bmp.GetPixel(x, y).R >= d.R) r = bmp.GetPixel(x, y).R + d.R; else r = bmp.GetPixel(x, y).R - d.R;

if (bmp.GetPixel(x, y).G >= d.G) g = bmp.GetPixel(x, y).G + d.G; else g = bmp.GetPixel(x, y).G - d.G;

if (bmp.GetPixel(x, y).B >= d.B) b = bmp.GetPixel(x, y).B + d.B; else b = bmp.GetPixel(x, y).B - d.B;

}

if (r < 0) r = 0;

if (r > 255) r = 255;

if (g < 0) g = 0;

if (g > 255) g = 255;

if (b < 0) b = 0;

if (b > 255) b = 255;

outBmp.SetPixel(x, y, Color.FromArgb((int)r, (int)g, (int)b));

}

}

}

return outBmp;

}

 

private static Image Kvadr(Image original)// Метод случайного разбрасывания черных квадратиков по изображению

{

Bitmap KvadrBmp = new Bitmap(original);

 

Random r = new Random();

 

int PictureHeight = KvadrBmp.Height;

int PictureWidth = KvadrBmp.Width;

 

int iter = PictureWidth * PictureHeight / 100000;

 

int i = 0;

 

while (i < iter)

 

{

int numpx = r.Next(3, PictureWidth-3);

int numpy = r.Next(3, PictureHeight-3);

 

KvadrBmp.SetPixel(numpx, numpy, Color.FromArgb(255, 0, 0, 0));

 

KvadrBmp.SetPixel(numpx-1, numpy-1, Color.FromArgb(255, 0, 0, 0));

KvadrBmp.SetPixel(numpx-1, numpy, Color.FromArgb(255, 0, 0, 0));

KvadrBmp.SetPixel(numpx, numpy-1, Color.FromArgb(255, 0, 0, 0));

 

KvadrBmp.SetPixel(numpx+1, numpy+1, Color.FromArgb(255, 0, 0, 0));

KvadrBmp.SetPixel(numpx+1, numpy, Color.FromArgb(255, 0, 0, 0));

KvadrBmp.SetPixel(numpx, numpy+1, Color.FromArgb(255, 0, 0, 0));

 

KvadrBmp.SetPixel(numpx+1, numpy-1, Color.FromArgb(255, 0, 0, 0));

KvadrBmp.SetPixel(numpx-1, numpy+1, Color.FromArgb(255, 0, 0, 0));

KvadrBmp.SetPixel(numpx + 2, numpy, Color.FromArgb(255, 0, 0, 0));

 

KvadrBmp.SetPixel(numpx, numpy - 2, Color.FromArgb(255, 0, 0, 0));

KvadrBmp.SetPixel(numpx - 2, numpy, Color.FromArgb(255, 0, 0, 0));

KvadrBmp.SetPixel(numpx, numpy + 2, Color.FromArgb(255, 0, 0, 0));

 

KvadrBmp.SetPixel(numpx - 2, numpy - 2, Color.FromArgb(255, 0, 0, 0));

KvadrBmp.SetPixel(numpx - 1, numpy - 2, Color.FromArgb(255, 0, 0, 0));

KvadrBmp.SetPixel(numpx - 2, numpy - 1, Color.FromArgb(255, 0, 0, 0));

 

KvadrBmp.SetPixel(numpx + 2, numpy - 2, Color.FromArgb(255, 0, 0, 0));

KvadrBmp.SetPixel(numpx + 2, numpy - 1, Color.FromArgb(255, 0, 0, 0));

KvadrBmp.SetPixel(numpx + 1, numpy - 2, Color.FromArgb(255, 0, 0, 0));

 

KvadrBmp.SetPixel(numpx + 2, numpy + 2, Color.FromArgb(255, 0, 0, 0));

KvadrBmp.SetPixel(numpx + 1, numpy + 2, Color.FromArgb(255, 0, 0, 0));

KvadrBmp.SetPixel(numpx + 2, numpy + 1, Color.FromArgb(255, 0, 0, 0));

 

KvadrBmp.SetPixel(numpx - 2, numpy + 2, Color.FromArgb(255, 0, 0, 0));

KvadrBmp.SetPixel(numpx - 1, numpy + 2, Color.FromArgb(255, 0, 0, 0));

KvadrBmp.SetPixel(numpx - 2, numpy + 1, Color.FromArgb(255, 0, 0, 0));

KvadrBmp.SetPixel(numpx, numpy - 2, Color.FromArgb(255, 0, 0, 0));

 

i++;

}

return KvadrBmp;

}

 

private static Image Proz(Image original, int procent)// Метод установки прозрачности изображения

{

Bitmap ProzBmp = new Bitmap(original);

 

Random r = new Random();

 

int PictureHeight = ProzBmp.Height;

int PictureWidth = ProzBmp.Width;

 

int iter = PictureWidth * PictureHeight / 100;

 

int i = 0;

 

while (i < iter)

{

int numpx = r.Next(0, PictureWidth);

int numpy = r.Next(0, PictureHeight);

int rcanal = ProzBmp.GetPixel(numpx, numpy).R;

int gcanal = ProzBmp.GetPixel(numpx, numpy).G;

int bcanal = ProzBmp.GetPixel(numpx, numpy).B;

ProzBmp.SetPixel(numpx, numpy, Color.FromArgb(procent, rcanal, gcanal, bcanal));

i++;

}

return ProzBmp;

}

 

private static Image Aproz(Image original)// Метод восстановления прозрачного изображения

{

Bitmap AprozBmp = new Bitmap(original);

 

Random r = new Random();

 

int PictureHeight = AprozBmp.Height;

int PictureWidth = AprozBmp.Width;

 

int iter = PictureWidth * PictureHeight / 100;

 

int i = 0;

 

while (i < iter)

{

int numpx = r.Next(0, PictureWidth);

int numpy = r.Next(0, PictureHeight);

int rcanal = AprozBmp.GetPixel(numpx, numpy).R;

int gcanal = AprozBmp.GetPixel(numpx, numpy).G;

int bcanal = AprozBmp.GetPixel(numpx, numpy).B;

AprozBmp.SetPixel(numpx, numpy, Color.FromArgb(255, rcanal, gcanal, bcanal));

i++;

}

return AprozBmp;

}

 

private static Image Invert(Image original)// Метод получения негатива изображения

{

Bitmap myImage = new Bitmap(original);

BitmapData imageData = myImage.LockBits(new Rectangle(0, 0, myImage.Width, myImage.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);

int stride = imageData.Stride;

IntPtr Scan0 = imageData.Scan0;

 

unsafe

{

byte* p = (byte*)(void*)Scan0;

 

int nOffset = stride - myImage.Width * 4;

int nWidth = myImage.Width;

 

for (int y = 0; y < myImage.Height; y++)

{

 

for (int x = 0; x < nWidth; x++)

{

p[0] = (byte)(255 - p[0]);

p[1] = (byte)(255 - p[1]);

p[2] = (byte)(255 - p[2]);

p += 4;

 

}

p += nOffset;

}

}

 

myImage.UnlockBits(imageData);

return (Image)myImage;

}

 

private static Bitmap GenerateNoise(Image original)// Метод создания из изображения имитации телевизионных помех

{

Bitmap finalBmp = new Bitmap(original);

Random r = new Random();

 

int PictureHeight = finalBmp.Height;

int PictureWidth = finalBmp.Width;

 

int iter = PictureWidth * PictureHeight / 10;

int i = 0;

while (i < iter)

{

int numc = r.Next(0, 256);

int numpx = r.Next(0, PictureWidth);

int numpy = r.Next(0, PictureHeight);

finalBmp.SetPixel(numpx, numpy, Color.FromArgb(255, numc, numc, numc));

i++;

}

 

return finalBmp;

}

 

public Image Kvadrcentrout(Image original)// Метод деления изображения на 4 части черными линиями толщиной в 5 пикселей от центра изображения к его краям

{

Bitmap centroutBmp = new Bitmap(original);

 

Random r = new Random();

 

float py = centroutBmp.Height / 2;

float px = centroutBmp.Width / 2;

 

int x = (int)px;

int y = (int)py;

 

 

int numpx = x;

int numpy = y - ix;

 

 

centroutBmp.SetPixel(numpx, numpy, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx - 1, numpy - 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx - 1, numpy, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx, numpy - 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx + 1, numpy + 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx + 1, numpy, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx, numpy + 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx + 1, numpy - 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx - 1, numpy + 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx + 2, numpy, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx, numpy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx - 2, numpy, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx, numpy + 2, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx - 2, numpy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx - 1, numpy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx - 2, numpy - 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx + 2, numpy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx + 2, numpy - 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx + 1, numpy - 2, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx + 2, numpy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx + 1, numpy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx + 2, numpy + 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx - 2, numpy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx - 1, numpy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx - 2, numpy + 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx, numpy - 2, Color.FromArgb(255, 0, 0, 0));

 

int numpyy = y + ix;

 

centroutBmp.SetPixel(numpx, numpyy, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx - 1, numpyy - 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx - 1, numpyy, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx, numpyy - 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx + 1, numpyy + 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx + 1, numpyy, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx, numpyy + 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx + 1, numpyy - 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx - 1, numpyy + 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx + 2, numpyy, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx, numpyy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx - 2, numpyy, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx, numpyy + 2, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx - 2, numpyy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx - 1, numpyy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx - 2, numpyy - 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx + 2, numpyy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx + 2, numpyy - 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx + 1, numpyy - 2, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx + 2, numpyy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx + 1, numpyy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx + 2, numpyy + 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx - 2, numpyy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx - 1, numpyy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx - 2, numpyy + 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx, numpyy - 2, Color.FromArgb(255, 0, 0, 0));

 

int numpxx = x + iy;

int numpyyy = y;

 

 

centroutBmp.SetPixel(numpxx, numpyyy, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxx - 1, numpyyy - 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx - 1, numpyyy, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx, numpyyy - 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxx + 1, numpyyy + 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx + 1, numpyyy, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx, numpyyy + 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxx + 1, numpyyy - 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx - 1, numpyyy + 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx + 2, numpyyy, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxx, numpyyy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx - 2, numpyyy, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx, numpyyy + 2, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxx - 2, numpyyy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx - 1, numpyyy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx - 2, numpyyy - 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxx + 2, numpyyy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx + 2, numpyyy - 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx + 1, numpyyy - 2, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxx + 2, numpyyy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx + 1, numpyyy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx + 2, numpyyy + 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxx - 2, numpyyy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx - 1, numpyyy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx - 2, numpyyy + 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx, numpyyy - 2, Color.FromArgb(255, 0, 0, 0));

 

 

int numpxxx = x - iy;

 

centroutBmp.SetPixel(numpxxx, numpyyy, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxxx - 1, numpyyy - 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx - 1, numpyyy, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx, numpyyy - 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxxx + 1, numpyyy + 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx + 1, numpyyy, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx, numpyyy + 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxxx + 1, numpyyy - 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx - 1, numpyyy + 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx + 2, numpyyy, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxxx, numpyyy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx - 2, numpyyy, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx, numpyyy + 2, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxxx - 2, numpyyy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx - 1, numpyyy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx - 2, numpyyy - 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxxx + 2, numpyyy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx + 2, numpyyy - 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx + 1, numpyyy - 2, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxxx + 2, numpyyy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx + 1, numpyyy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx + 2, numpyyy + 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxxx - 2, numpyyy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx - 1, numpyyy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx - 2, numpyyy + 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx, numpyyy - 2, Color.FromArgb(255, 0, 0, 0));

 

 

return centroutBmp;

}

 

public Image Kvadrcentrin(Image original)// Метод деления изображения на 4 части черными линиями толщиной в 5 пикселей от краев изображения к его центру

{

Bitmap centroutBmp = new Bitmap(original);

 

Random r = new Random();

 

int x = centroutBmp.Width;

int y = centroutBmp.Height;

 

int numpx = x / 2;

int numpy = y - ix - 1;

 

 

centroutBmp.SetPixel(numpx, numpy, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx - 1, numpy - 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx - 1, numpy, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx, numpy - 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx + 1, numpy + 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx + 1, numpy, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx, numpy + 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx + 1, numpy - 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx - 1, numpy + 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx + 2, numpy, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx, numpy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx - 2, numpy, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx, numpy + 2, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx - 2, numpy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx - 1, numpy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx - 2, numpy - 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx + 2, numpy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx + 2, numpy - 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx + 1, numpy - 2, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx + 2, numpy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx + 1, numpy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx + 2, numpy + 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx - 2, numpy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx - 1, numpy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx - 2, numpy + 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx, numpy - 2, Color.FromArgb(255, 0, 0, 0));

 

int numpyy = ix;

 

centroutBmp.SetPixel(numpx, numpyy, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx - 1, numpyy - 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx - 1, numpyy, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx, numpyy - 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx + 1, numpyy + 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx + 1, numpyy, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx, numpyy + 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx + 1, numpyy - 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx - 1, numpyy + 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx + 2, numpyy, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx, numpyy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx - 2, numpyy, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx, numpyy + 2, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx - 2, numpyy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx - 1, numpyy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx - 2, numpyy - 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx + 2, numpyy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx + 2, numpyy - 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx + 1, numpyy - 2, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx + 2, numpyy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx + 1, numpyy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx + 2, numpyy + 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpx - 2, numpyy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx - 1, numpyy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx - 2, numpyy + 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpx, numpyy - 2, Color.FromArgb(255, 0, 0, 0));

 

int numpxx = x - iy - 1;

int numpyyy = y / 2;

 

 

centroutBmp.SetPixel(numpxx, numpyyy, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxx - 1, numpyyy - 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx - 1, numpyyy, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx, numpyyy - 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxx + 1, numpyyy + 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx + 1, numpyyy, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx, numpyyy + 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxx + 1, numpyyy - 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx - 1, numpyyy + 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx + 2, numpyyy, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxx, numpyyy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx - 2, numpyyy, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx, numpyyy + 2, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxx - 2, numpyyy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx - 1, numpyyy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx - 2, numpyyy - 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxx + 2, numpyyy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx + 2, numpyyy - 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx + 1, numpyyy - 2, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxx + 2, numpyyy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx + 1, numpyyy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx + 2, numpyyy + 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxx - 2, numpyyy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx - 1, numpyyy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx - 2, numpyyy + 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxx, numpyyy - 2, Color.FromArgb(255, 0, 0, 0));

 

 

int numpxxx = iy;

 

centroutBmp.SetPixel(numpxxx, numpyyy, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxxx - 1, numpyyy - 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx - 1, numpyyy, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx, numpyyy - 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxxx + 1, numpyyy + 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx + 1, numpyyy, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx, numpyyy + 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxxx + 1, numpyyy - 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx - 1, numpyyy + 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx + 2, numpyyy, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxxx, numpyyy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx - 2, numpyyy, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx, numpyyy + 2, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxxx - 2, numpyyy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx - 1, numpyyy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx - 2, numpyyy - 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxxx + 2, numpyyy - 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx + 2, numpyyy - 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx + 1, numpyyy - 2, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxxx + 2, numpyyy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx + 1, numpyyy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx + 2, numpyyy + 1, Color.FromArgb(255, 0, 0, 0));

 

centroutBmp.SetPixel(numpxxx - 2, numpyyy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx - 1, numpyyy + 2, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx - 2, numpyyy + 1, Color.FromArgb(255, 0, 0, 0));

centroutBmp.SetPixel(numpxxx, numpyyy - 2, Color.FromArgb(255, 0, 0, 0));

 

 

return centroutBmp;

}

 

private void TimerNoize(object sender, EventArgs e)//Таймер для Метода создания из изображения имитации телевизионных помех

{

pictureBox1.Image = GenerateNoise(pictureBox1.Image);

}

 

private void TimerProzr100(object sender, EventArgs e)//Таймер для метода установки прозрачности изображения на 100%

{

pictureBox1.Image = Proz(pictureBox1.Image,1);

}

 

private void TimerProzr25(object sender, EventArgs e)//Таймер для метода установки прозрачности изображения на 25%

{

pictureBox1.Image = Proz(pictureBox1.Image, 191);

}

 

private void TimerProzr50(object sender, EventArgs e)//Таймер для метода установки прозрачности изображения на 50%

{

pictureBox1.Image = Proz(pictureBox1.Image, 128);

}

 

private void TimerProzr75(object sender, EventArgs e)//Таймер для метода установки прозрачности изображения на 25%

{

pictureBox1.Image = Proz(pictureBox1.Image, 64);

}

 

private void TimerAprozr(object sender, EventArgs e)//Таймер для метода восстановление непрозрачности прозрачного изображения

{

pictureBox1.Image = Aproz(pictureBox1.Image);

}

 

private void TimerKvadr(object sender, EventArgs e)//Таймер для метода случайного разбрасывания черных квадратиков по изображению

{

pictureBox1.Image = Kvadr(pictureBox1.Image);

}

 

private void Timerkvadrcentrout(object sender, EventArgs e)// Таймер для метода деления изображения на 4 части черными линиями толщиной в 5 пикселей от центра изображения к его краям

{

pictureBox1.Image = Kvadrcentrout(pictureBox1.Image);

if (ix <= (pictureBox1.Image.Height) / 2 - 4) { ix++; }

else ix = 2;

if (iy <= (pictureBox1.Image.Width) / 2 - 4) { iy++; }

else iy = 2;

}

 

private void Timerkvadrcentrin(object sender, EventArgs e)// Таймер для метода деления изображения на 4 части черными линиями толщиной в 5 пикселей от краев изображения к его центру

{

pictureBox1.Image = Kvadrcentrin(pictureBox1.Image);

if (ix <= (pictureBox1.Image.Height) / 2 - 4) { ix++; }

else ix = 2;

if (iy <= (pictureBox1.Image.Width) / 2 - 4) { iy++; }

else iy = 2;

}

private void button1_Click(object sender, EventArgs e)// Далее следуют обработчики событий нажатий на кнопки

{

OpenFileDialog openImg = new OpenFileDialog();

 

openImg.Title = "Открыть изображение";

openImg.Filter = "*.jpg|*.jpg|Все файлы (*.*)|*.*";

 

if (openImg.ShowDialog() == DialogResult.OK)

{

pictureBox1.Image = new Bitmap(openImg.OpenFile());

 

}

 

openImg.Dispose();

}

 

private void Form1_Load(object sender, EventArgs e)

{

 

}

 

private void button2_Click(object sender, EventArgs e)

{

if (ishImgenable == false)

{

ishImg = pictureBox1.Image;

ishImgenable = true;

}

pictureBox1.Image = Invert(pictureBox1.Image);

}

 

private void button3_Click(object sender, EventArgs e)

{

if (ishImgenable == false)

{

ishImg = pictureBox1.Image;

ishImgenable = true;

}

tmr1 = new Timer();

tmr1.Interval = 10;

tmr1.Tick += new System.EventHandler(TimerNoize);

tmr1.Start();

}

 

private void button4_Click(object sender, EventArgs e)

{

tmr1.Stop();

}

 

private void button5_Click(object sender, EventArgs e)

{

pictureBox1.Image = ishImg;

}

 

private void button6_Click(object sender, EventArgs e)

{

if (ishImgenable == false)

{

ishImg = pictureBox1.Image;

ishImgenable = true;

}

tmr1 = new Timer();

tmr1.Interval = 10;

tmr1.Tick += new System.EventHandler(TimerKvadr);

tmr1.Start();

}

 

private void button7_Click(object sender, EventArgs e)

{

if (ishImgenable == false)

{

ishImg = pictureBox1.Image;

ishImgenable = true;

}

tmr1 = new Timer();

tmr1.Interval = 1;

tmr1.Tick += new System.EventHandler(TimerProzr100);

tmr1.Start();

}

 

private void button8_Click(object sender, EventArgs e)

{

tmr1 = new Timer();

tmr1.Interval = 1;

tmr1.Tick += new System.EventHandler(TimerAprozr);

tmr1.Start();

}

 

private void button9_Click(object sender, EventArgs e)

{

if (ishImgenable == false)

{

ishImg = pictureBox1.Image;

ishImgenable = true;

}

tmr1 = new Timer();

tmr1.Interval = 1;

tmr1.Tick += new System.EventHandler(TimerProzr25);

tmr1.Start();

}

 

private void button10_Click(object sender, EventArgs e)

{

if (ishImgenable == false)

{

ishImg = pictureBox1.Image;

ishImgenable = true;

}

tmr1 = new Timer();

tmr1.Interval = 1;

tmr1.Tick += new System.EventHandler(TimerProzr50);

tmr1.Start();

}

 

private void button11_Click(object sender, EventArgs e)

{

if (ishImgenable == false)

{

ishImg = pictureBox1.Image;

ishImgenable = true;

}

tmr1 = new Timer();

tmr1.Interval = 1;

tmr1.Tick += new System.EventHandler(TimerProzr75);

tmr1.Start();

}

 

private void button1_Click_1(object sender, EventArgs e)

{

if (ishImgenable == false)

{

ishImg = pictureBox1.Image;

ishImgenable = true;

}

tmr1 = new Timer();

tmr1.Interval = 1;

tmr1.Tick += new System.EventHandler(Timerkvadrcentrout);

tmr1.Start();

}

 

private void button2_Click_1(object sender, EventArgs e)

{

if (ishImgenable == false)

{

ishImg = pictureBox1.Image;

ishImgenable = true;

}

tmr1 = new Timer();

tmr1.Interval = 1;

tmr1.Tick += new System.EventHandler(Timerkvadrcentrin);

tmr1.Start();

}

 

private void button3_Click_1(object sender, EventArgs e)

{

if (ishImgenable == false)

{

ishImg = pictureBox1.Image;

ishImgenable = true;

}

pictureBox1.Image = _IncreaseBrightness (pictureBox1.Image,0);

}

 

private void button4_Click_1(object sender, EventArgs e)

{

if (ishImgenable == false)

{

ishImg = pictureBox1.Image;

ishImgenable = true;

}

pictureBox1.Image = _IncreaseBrightness(pictureBox1.Image, 1);

}

 

private void button5_Click_1(object sender, EventArgs e)

{

if (ishImgenable == false)

{

ishImg = pictureBox1.Image;

ishImgenable = true;

}

pictureBox1.Image = _IncreaseBrightness(pictureBox1.Image, 2);

}

 

private void button6_Click_1(object sender, EventArgs e)

{

if (ishImgenable == false)

{

ishImg = pictureBox1.Image;

ishImgenable = true;

}

Bitmap b = new Bitmap(pictureBox1.Image);

MakeGray(b);

Image img = b;

pictureBox1.Image = img;

}

 

private void textBox4_TextChanged(object sender, EventArgs e)

{

 

}

 

private void button7_Click_1(object sender, EventArgs e)

{

Bitmap bmpSave = (Bitmap)pictureBox1.Image;

SaveFileDialog sfd = new SaveFileDialog();

sfd.DefaultExt = "bmp";

sfd.Filter = "JPEG files (*.jpg)|*.jpg|BMP files (*.bmp)|*.bmp";

if (sfd.ShowDialog() == DialogResult.OK)

bmpSave.Save(sfd.FileName, ImageFormat.Bmp);

}

 

private void saveFileDialog1_FileOk(object sender, CancelEventArgs e)

{

 

}

}

}


Приложение 2

 

Некоторые результаты работы программы:

 

Исходное изображение

Эффект негатива

Эффект черно-белого изображения

Эффект телевизионных помех

Эффект увеличения контрастности

Эффект случайно разбросанных квадратиков

Эффект деления изображения на 4 части

 

Пояснительная записка

К курсовой работе

По курсу: «Компьютерная графика»



Поделиться:


Последнее изменение этой страницы: 2017-02-10; просмотров: 118; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.227.239.160 (0.625 с.)