I've taken this code from Extract image from PDF using itextsharp but it did not work for me, i guess because of the iTextSharp version.
Below is the code, ant it show me error at  ImageRenderInfo imgRI = ImageRenderInfo.CreateForXObject(new Matrix(float.Parse(width), float.Parse(height)), (PRIndirectReference)obj, tg); 
saying that:
Argument1: cannot convert from iTextSharp.text.pdf.parser.Matrix to iTextSharp.text.pdf.parser.GraphicsState
    string imgPath = "";
    private void ExtractImage(string pdfFile)
    {
        PdfReader pdfReader = new PdfReader(@"");
        for (int pageNumber = 1; pageNumber <= pdfReader.NumberOfPages; pageNumber++)
        {
            PdfReader pdf = new PdfReader(pdfFile);
            PdfDictionary pg = pdf.GetPageN(pageNumber);
            PdfDictionary res = (PdfDictionary)PdfReader.GetPdfObject(pg.Get(PdfName.RESOURCES));
            PdfDictionary xobj = (PdfDictionary)PdfReader.GetPdfObject(res.Get(PdfName.XOBJECT));
            foreach (PdfName name in xobj.Keys)
            {
                PdfObject obj = xobj.Get(name);
                if (obj.IsIndirect())
                {
                    PdfDictionary tg = (PdfDictionary)PdfReader.GetPdfObject(obj);
                    string width = tg.Get(PdfName.WIDTH).ToString();
                    string height = tg.Get(PdfName.HEIGHT).ToString();
                    ImageRenderInfo imgRI = ImageRenderInfo.CreateForXObject(new Matrix(float.Parse(width), float.Parse(height)), (PRIndirectReference)obj, tg);
                    RenderImage(imgRI);
                }
            }
        }
    }
    private void RenderImage(ImageRenderInfo renderInfo)
    {
        PdfImageObject image = renderInfo.GetImage();
        using (Dotnet dotnetImg = image.GetDrawingImage())
        {
            if (dotnetImg != null)
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    dotnetImg.Save(ms, ImageFormat.Tiff);
                    Bitmap d = new Bitmap(dotnetImg);
                    d.Save(imgPath);
                }
            }
        }
    }
    private void Form1_Load(object sender, System.EventArgs e)
    {
    }
}
P.S: i'm a beginner in C# language (its syntax)
Thanks,