---
title: "Recompress a PDF using color detection in VB.NET"
canonical_url: "https://www.nutrient.io/guides/dotnet/samples/recompress-pdf-vbnet/"
md_url: "https://www.nutrient.io/guides/dotnet/samples/recompress-pdf-vbnet.md"
last_updated: "2026-05-14T21:57:26.876Z"
description: "Learn how to recompress PDF documents with scanned images using VB.NET. Improve file size and quality efficiently with our step-by-step example."
---

# Recompress an existing PDF using color detection in VB.NET

This example shows how to recompress an existing PDF document containing various images from a scanner.

[Get Started](https://www.nutrient.io/sdk/dotnet/getting-started.md)

[All Samples](https://www.nutrient.io/guides/dotnet/samples.md)

[Download](https://www.nutrient.io/guides/dotnet/downloads.md)

[Launch Demo](https://www.nutrient.io/demo/)

---

### C#

[C#](https://www.nutrient.io/guides/dotnet/samples/recompress-pdf-cs.md)

### VB.NET

[VB.NET](https://www.nutrient.io/guides/dotnet/samples/recompress-pdf-vbnet.md)

```vb

'We assume that GdPicture has been correctly installed and unlocked.
Dim oGdPicturePDF As New GdPicturePDF()
oGdPicturePDF.SetCompressionForBitonalImage(PdfCompression.PdfCompressionJBIG2)
oGdPicturePDF.SetCompressionForColorImage(PdfCompression.PdfCompressionJPEG)
Dim oGdPictureImaging As New GdPictureImaging()
Dim status As GdPictureStatus = oGdPicturePDF.LoadFromFile("c:\input.pdf", True)
If status = GdPictureStatus.OK Then
    Dim PageCount As Integer = oGdPicturePDF.GetPageCount()
    For Page As Integer = 1 To PageCount
        oGdPicturePDF.SelectPage(Page)
        For Image As Integer = 1 To oGdPicturePDF.GetPageImageCount()
            Dim imageID As Integer = oGdPicturePDF.ExtractPageImage(Image)
            If oGdPicturePDF.GetStat() = GdPictureStatus.OK Then
                oGdPictureImaging.ColorDetection(imageID, True, True, True)
                If oGdPicturePDF.ReplaceImage(oGdPicturePDF.GetPageImageResName(Image - 1), imageID, False) <> GdPictureStatus.OK Then
                    MessageBox.Show("Error: " + status.ToString(), "Color Detection Example", MessageBoxButtons.OK, MessageBoxIcon.Error)
                End If
                oGdPictureImaging.ReleaseGdPictureImage(imageID)
            Else
                MessageBox.Show("Error: " + status.ToString(), "Color Detection Example", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End If
        Next
    Next
    status = oGdPicturePDF.SaveToFile("c:\output.pdf", True)
    If status = GdPictureStatus.OK Then
        MessageBox.Show("Done!", "Color Detection Example", MessageBoxButtons.OK, MessageBoxIcon.Information)
    Else
        MessageBox.Show("The PDF file can't be saved. Error: " + status.ToString(), "Color Detection Example", MessageBoxButtons.OK, MessageBoxIcon.Error)
    End If
    oGdPicturePDF.CloseDocument()
    oGdPictureImaging.Dispose()
Else
    MessageBox.Show("The PDF file can't be loaded. Error: " + status.ToString(), "Color Detection Example", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
oGdPicturePDF.Dispose()

```

This code sample is an example that illustrates how to use our SDK. Please adapt it to your specific use case.

---

## Related pages

- [Automatically rotate pages of a multipage TIFF file using OCR and VB.NET](/guides/dotnet/samples/auto-rotate-tiff-vbnet.md)
- [Automatically rotate pages of a multipage TIFF file using OCR and C#](/guides/dotnet/samples/auto-rotate-tiff-cs.md)
- [Convert PDFs, MS Office, and images to TIFF in C#](/guides/dotnet/samples/convert-to-tiff-cs.md)
- [Saving images into folders based on their barcode](/guides/dotnet/samples/barcode-auto-sorting-cs.md)
- [Saving images into folders based on their barcode](/guides/dotnet/samples/barcode-auto-sorting-vbnet.md)
- [Generate a multipage TIFF file using a compression mode per page in C#](/guides/dotnet/samples/create-multipage-tiff-cs.md)
- [Converting a Microsoft Word binary file document (DOC) to a Microsoft Word OpenXML document (DOCX) in C#](/guides/dotnet/samples/doc-to-docx-cs.md)
- [Merging two PDF documents by alternating pages from both files in VB.NET](/guides/dotnet/samples/merge-pdf-alternate-pages-vbnet.md)
- [Using an external OCR engine during PDF/OCR generation](/guides/dotnet/samples/integrate-omnipage-ocr-cs.md)
- [Converting a multipage PDF to a multipage TIFF using color detection in C#](/guides/dotnet/samples/pdf-to-tiff-color-detection-cs.md)
- [Merging two PDF documents by alternating pages from both files in C#](/guides/dotnet/samples/merge-pdf-alternate-pages-cs.md)
- [Converting a multipage PDF to a multipage TIFF using color detection in VB.NET](/guides/dotnet/samples/pdf-to-tiff-color-detection-vbnet.md)
- [Recompress existing PDFs using MRC compression in C#](/guides/dotnet/samples/recompress-pdf-mrc-cs.md)
- [Recompress an existing PDF using color detection in C#](/guides/dotnet/samples/recompress-pdf-cs.md)
- [Recompress existing PDFs using MRC compression in VB.NET](/guides/dotnet/samples/recompress-pdf-mrc-vbnet.md)
- [Highlight and crop an image in C#](/guides/dotnet/samples/select-image-crop-area-cs.md)
- [Highlight and crop an image in VB.NET](/guides/dotnet/samples/select-image-crop-area-vbnet.md)
- [Highlight a region in PDF or an image in VB.NET](/guides/dotnet/samples/select-pdf-image-region-vbnet.md)
- [Choosing the appropriate OCR zone in C#](/guides/dotnet/samples/select-ocr-zone-cs.md)
- [Highlight a region in a PDF or an image in C#](/guides/dotnet/samples/select-pdf-image-region-cs.md)
- [Choosing the appropriate OCR zone in VB.NET](/guides/dotnet/samples/select-ocr-zone-vbnet.md)
- [Save bitonal TIFFs with VB.NET using photometric 0](/guides/dotnet/samples/tiff-photometric-vbnet.md)
- [Convert a multipage TIFF to a multipage JBIG2 in VB.NET](/guides/dotnet/samples/tiff-to-jbig2-vbnet.md)
- [Save bitonal TIFF images with C# and CCITT4](/guides/dotnet/samples/tiff-photometric-cs.md)
- [Convert a multipage TIFF to a multipage JBIG2 in C#](/guides/dotnet/samples/tiff-to-jbig2-cs.md)

