private void button2_Click(object sender, EventArgs e) { metoda = listaMetode.SelectedIndex; limita = (int)tabLimita.Value; //RGB R = JPEG.GetRGB(bmp, 1); G = JPEG.GetRGB(bmp, 2); B = JPEG.GetRGB(bmp, 3); //YCBCR Y = JPEG.RGBtoYCBCR(R, G, B, 1); CB = JPEG.RGBtoYCBCR(R, G, B, 2); CR = JPEG.RGBtoYCBCR(R, G, B, 3); //Subesantionarea SubCB = JPEG.Subesantionare(CB); SubCR = JPEG.Subesantionare(CR); //DCT Ydct = JPEG.DCT(Y, 256); CBdct = JPEG.DCT(SubCB, 128); CRdct = JPEG.DCT(SubCR, 128); //Cuantizare //YQ = JPEG.Cuantizare(Ydct, 256, metoda,limita); YQ = JPEG.Cuantizare(Ydct, 256, metoda, limita); CBQ = JPEG.Cuantizare(CBdct, 128, metoda, limita); CRQ = JPEG.Cuantizare(CRdct, 128, metoda, limita); }
private void button3_Click(object sender, EventArgs e) { Ydct = JPEG.Decuantizare(YQ, 256, metoda, limita); CBdct = JPEG.Decuantizare(CBQ, 128, metoda, limita); CRdct = JPEG.Decuantizare(CRQ, 128, metoda, limita); Y = JPEG.InversDCT(Ydct, 256); SubCR = JPEG.InversDCT(CRdct, 128); SubCB = JPEG.InversDCT(CBdct, 128); //Reesantionare CB = JPEG.InversSubesantionare(SubCB); CR = JPEG.InversSubesantionare(SubCR); // YCBCR-->RGB R = JPEG.YCBCRtoRGB(Y, CB, CR, 1); G = JPEG.YCBCRtoRGB(Y, CB, CR, 2); B = JPEG.YCBCRtoRGB(Y, CB, CR, 3); ImagineInversa.Image = JPEG.RGBToBMP(R, G, B); }