SHARE
TWEET

Untitled

a guest Sep 21st, 2019 117 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using System.Windows.Forms.DataVisualization.Charting;
  11. namespace WindowsFormsApp1
  12. {
  13.     public partial class Form1 : Form
  14.     {
  15.         Bitmap foto;
  16.         public Form1()
  17.         {
  18.             InitializeComponent();
  19.         }
  20.  
  21.         private void Button1_Click(object sender, EventArgs e)
  22.         {
  23.             this.openFileDialog1.Filter = "Images2 (*.bmp, *.jpg, *.png )| *.bmp; *.jpg; *.png| Bitmap (*.bmp) | *.bmp|JPEG (*.jpg) | *.jpg |PNG (*.png)| *.png ";
  24.             if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
  25.             {
  26.                 try
  27.                 {
  28.                     foto = new Bitmap(this.openFileDialog1.FileName);
  29.                     float k = (foto.Height > foto.Width) ? ((float)pictureBox1.Height / foto.Height) : ((float)pictureBox1.Width / foto.Width);
  30.                     pictureBox1.Image = new Bitmap(foto, (int)(foto.Width * k), (int)(foto.Height * k));
  31.                 }
  32.                 catch
  33.                 {
  34.                     MessageBox.Show("Плохой файл!");
  35.                 }
  36.             }
  37.         }
  38.  
  39.         private void Button2_Click(object sender, EventArgs e)
  40.         {
  41.            switch ((comboBox1.SelectedItem.ToString().Trim()))
  42.             {
  43.                 case "Sas":
  44.                     for (int x = 0; x < foto.Width; x++)
  45.                     {
  46.                         for (int y = 0; y < foto.Height; y++)
  47.                         {
  48.                             Color current = foto.GetPixel(x, y);
  49.                             int avg = (current.R + current.B + current.G) / 3;
  50.                             Color output = Color.FromArgb(avg, avg, avg);
  51.                             foto.SetPixel(x, y, output);
  52.  
  53.  
  54.                         }
  55.                     }
  56.                     break;
  57.  
  58.                 case "pas":
  59.                     for (int x = 0; x < foto.Width; x++)
  60.                     {
  61.                         for (int y = 0; y < foto.Height; y++)
  62.                         {
  63.                             Color current = foto.GetPixel(x, y);
  64.                             int avg = Math.Max(Math.Max(current.R,current.B),current.G);
  65.                             Color output = Color.FromArgb(avg, avg, avg);
  66.                             foto.SetPixel(x, y, output);
  67.  
  68.                         }
  69.                     }
  70.                     break;
  71.  
  72.                 case "cas":
  73.                    
  74.                     for (int x = 0; x < foto.Width; x++)
  75.                     {
  76.                         for (int y = 0; y < foto.Height; y++)
  77.                         {
  78.                             Color current = foto.GetPixel(x, y);
  79.                             double avg =(255 / (Math.Sqrt(255 * 255 + 255 * 255 + 255 * 255))) * (Math.Sqrt(current.R* current.R + current.B * current.B + current.G * current.G));
  80.                             Color output = Color.FromArgb((int)avg, (int)avg, (int)avg);
  81.                             foto.SetPixel(x, y, output);
  82.  
  83.                         }
  84.                     }
  85.                     break;
  86.  
  87.                 case "las":
  88.  
  89.                     for (int x = 0; x < foto.Width; x++)
  90.                     {
  91.                         for (int y = 0; y < foto.Height; y++)
  92.                         {
  93.            
  94.                                 Color current = foto.GetPixel(x, y);
  95.                                 int avg = (Math.Max(Math.Max(current.R, current.B), current.G)+ Math.Min(Math.Min(current.R, current.B), current.G))/2;
  96.                                 Color output = Color.FromArgb(avg, avg, avg);
  97.                                 foto.SetPixel(x, y, output);
  98.                         }
  99.                     }
  100.                     break;
  101.  
  102.                 case "vas":
  103. /*                    this.chart1.Titles.Add("Total Income");
  104.  
  105.                     Series series = this.chart1.Series.Add("SADASDAS");
  106.                     series.ChartType = SeriesChartType.Spline;*/
  107.                    
  108.                     for (int x = 0; x < foto.Width; x++)
  109.                     {
  110.                         for (int y = 0; y < foto.Height; y++)
  111.                         {
  112. /*                            if ((x == 2) && (y<100))
  113.                                 series.Points.AddXY(x, y);
  114.                             if ((x == 3) && (y > 166) && (y < 255))
  115.                                 series.Points.AddXY(x, y);*/
  116.                             Color current = foto.GetPixel(x, y);
  117.                             int avg = (int)(0.213*current.R + 0.715*current.B + 0.072*current.G);
  118.                             Color output = Color.FromArgb(avg, avg, avg);
  119.                             foto.SetPixel(x, y, output);
  120.                         }
  121.                     }
  122.  
  123.                             break;
  124.  
  125.                 case "neg":
  126.  
  127.                     for (int x = 0; x < foto.Width; x++)
  128.                     {
  129.                         for (int y = 0; y < foto.Height; y++)
  130.                         {
  131.  
  132.                             Color current = foto.GetPixel(x, y);
  133.                             int avg1 = (255 - current.R);
  134.                             int avg2 = (255 - current.G);
  135.                             int avg3 = (255 - current.B);
  136.                             Color output = Color.FromArgb(avg1, avg2, avg3);
  137.                             foto.SetPixel(x, y, output);
  138.                         }
  139.                     }
  140.                     break;
  141.  
  142.                 case "ln":
  143.  
  144.                     for (int x = 0; x < foto.Width; x++)
  145.                     {
  146.                         for (int y = 0; y < foto.Height; y++)
  147.                         {
  148.  
  149.                             Color current = foto.GetPixel(x, y);
  150.                             int avg1 = (int)((255 / Math.Log(1+255))*Math.Log(current.R+1));
  151.                             int avg2 = (int)((255 / Math.Log(1 + 255)) * Math.Log(current.G + 1));
  152.                             int avg3 = (int)((255 / Math.Log(1 + 255)) * Math.Log(current.B + 1));
  153.                             Color output = Color.FromArgb(avg1, avg2, avg3);
  154.                             foto.SetPixel(x, y, output);
  155.                         }
  156.                     }
  157.                     break;
  158.  
  159.                 case "lg":
  160.  
  161.                     for (int x = 0; x < foto.Width; x++)
  162.                     {
  163.                         for (int y = 0; y < foto.Height; y++)
  164.                         {
  165.  
  166.                             Color current = foto.GetPixel(x, y);
  167.                             int avg1 = (int)((255 / Math.Log(1 + 255)) * Math.Log10(current.R + 1));
  168.                             int avg2 = (int)((255 / Math.Log(1 + 255)) * Math.Log10(current.G + 1));
  169.                             int avg3 = (int)((255 / Math.Log(1 + 255)) * Math.Log10(current.B + 1));
  170.                             Color output = Color.FromArgb(avg1, avg2, avg3);
  171.                             foto.SetPixel(x, y, output);
  172.                          
  173.                         }
  174.                     }
  175.                  
  176.                     break;
  177.  
  178.                 case "step":
  179.                     double cct = Convert.ToDouble(numericUpDown1.Value);
  180.                     double c = 255 / Math.Pow(255, cct);
  181.                     for (int x = 0; x < foto.Width; x++)
  182.                     {
  183.                         for (int y = 0; y < foto.Height; y++)
  184.                         {
  185.                             Color current = foto.GetPixel(x, y);
  186.                             double avg1 = c * Math.Pow(current.R,cct);
  187.                             double avg2 = c * Math.Pow(current.G,cct);
  188.                             double avg3 = c * Math.Pow(current.B,cct);
  189.                             Color output = Color.FromArgb((int)avg1, (int)avg2, (int)avg3);
  190.                             foto.SetPixel(x, y, output);
  191.                         }
  192.                     }
  193.                     break;
  194.  
  195.  
  196.                 default:
  197.                     MessageBox.Show("You're playing League");
  198.                     break;
  199.             }
  200.            
  201.             float k = (foto.Height > foto.Width) ? ((float)pictureBox2.Height / foto.Height) : ((float)pictureBox2.Width / foto.Width);
  202.             pictureBox2.Image = new Bitmap(foto, (int)(foto.Width * k), (int)(foto.Height * k));
  203.         }
  204.  
  205.     }
  206. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top