Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
По курсу: «Компьютерная графика»Стр 1 из 4Следующая ⇒
Пояснительная записка К курсовой работе По курсу: «Компьютерная графика» Тема: «Выдача на экран изображения с эффектами»
Выполнил: студент группы 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 с.) |