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