示例#1
0
 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);
 }
示例#2
0
        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);
        }