Test case for PNG images: palette, grayscale and color images from PngSuite with different bit depths, filter types, compression levels and transparency.
Example_17.pdf — the PDF this example creates.
/*
* Example_17.cs
*
* Copyright (c) 2026 PDFjet Software
* Licensed under the MIT License. See LICENSE file in the project root.
*/
using System;
using System.IO;
using System.Diagnostics;
using PDFjet.NET;
/**
* Example_17.cs
*/
public class Example_17 {
public Example_17() {
PDF pdf = new PDF(new BufferedStream(
new FileStream("Example_17.pdf", FileMode.Create)));
String fileName = "PngSuite/BASN3P08.PNG";
FileStream fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image1 = new Image(pdf, fis);
fileName = "PngSuite/BASN3P04.PNG";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image2 = new Image(pdf, fis);
fileName = "PngSuite/BASN3P02.PNG";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image3 = new Image(pdf, fis);
fileName = "PngSuite/BASN3P01.PNG";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image4 = new Image(pdf, fis);
fileName = "PngSuite/S01N3P01.PNG";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image5 = new Image(pdf, fis);
fileName = "PngSuite/S02N3P01.PNG";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image6 = new Image(pdf, fis);
fileName = "PngSuite/S03N3P01.PNG";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image7 = new Image(pdf, fis);
fileName = "PngSuite/S04N3P01.PNG";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image8 = new Image(pdf, fis);
fileName = "PngSuite/S05N3P02.PNG";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image9 = new Image(pdf, fis);
fileName = "PngSuite/S06N3P02.PNG";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image10 = new Image(pdf, fis);
fileName = "PngSuite/S07N3P02.PNG";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image11 = new Image(pdf, fis);
fileName = "PngSuite/S08N3P02.PNG";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image12 = new Image(pdf, fis);
fileName = "PngSuite/S09N3P02.PNG";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image13 = new Image(pdf, fis);
fileName = "PngSuite/S32N3P04.PNG";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image14 = new Image(pdf, fis);
fileName = "PngSuite/S33N3P04.PNG";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image15 = new Image(pdf, fis);
fileName = "PngSuite/S34N3P04.PNG";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image16 = new Image(pdf, fis);
fileName = "PngSuite/S35N3P04.PNG";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image17 = new Image(pdf, fis);
fileName = "PngSuite/S36N3P04.PNG";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image18 = new Image(pdf, fis);
fileName = "PngSuite/S37N3P04.PNG";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image19 = new Image(pdf, fis);
fileName = "PngSuite/S38N3P04.PNG";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image20 = new Image(pdf, fis);
fileName = "PngSuite/S39N3P04.PNG";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image21 = new Image(pdf, fis);
fileName = "PngSuite/S40N3P04.PNG";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image22 = new Image(pdf, fis);
fileName = "images/qrcode.png";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image23 = new Image(pdf, fis);
fileName = "PngSuite/F00N2C08.PNG";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image24 = new Image(pdf, fis);
fileName = "PngSuite/F01N2C08.PNG";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image25 = new Image(pdf, fis);
fileName = "PngSuite/F02N2C08.PNG";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image26 = new Image(pdf, fis);
fileName = "PngSuite/F03N2C08.PNG";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image27 = new Image(pdf, fis);
fileName = "PngSuite/F04N2C08.PNG";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image28 = new Image(pdf, fis);
fileName = "PngSuite/Z00N2C08.PNG";
// color, no interlacing, compression level 0 (none)
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image29 = new Image(pdf, fis);
fileName = "PngSuite/Z03N2C08.PNG";
// color, no interlacing, compression level 3
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image30 = new Image(pdf, fis);
fileName = "PngSuite/Z06N2C08.PNG";
// color, no interlacing, compression level 6 (default)
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image31 = new Image(pdf, fis);
fileName = "PngSuite/Z09N2C08.PNG";
// color, no interlacing, compression level 9 (maximum)
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image32 = new Image(pdf, fis);
fileName = "PngSuite/F00N0G08.PNG";
// 8 bit greyscale, no interlacing, filter-type 0
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image33 = new Image(pdf, fis);
fileName = "PngSuite/F01N0G08.PNG";
// 8 bit greyscale, no interlacing, filter-type 1
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image34 = new Image(pdf, fis);
fileName = "PngSuite/F02N0G08.PNG";
// 8 bit greyscale, no interlacing, filter-type 2
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image35 = new Image(pdf, fis);
fileName = "PngSuite/F03N0G08.PNG";
// 8 bit greyscale, no interlacing, filter-type 3
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image36 = new Image(pdf, fis);
fileName = "PngSuite/F04N0G08.PNG";
// 8 bit greyscale, no interlacing, filter-type 4
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image37 = new Image(pdf, fis);
fileName = "PngSuite/BASN0G08.PNG";
// 8 bit grayscale
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image38 = new Image(pdf, fis);
fileName = "PngSuite/BASN0G04.PNG";
// 4 bit grayscale
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image39 = new Image(pdf, fis);
fileName = "PngSuite/BASN0G02.PNG";
// 2 bit grayscale
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image40 = new Image(pdf, fis);
fileName = "PngSuite/BASN0G01.PNG";
// Black and White image
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image41 = new Image(pdf, fis);
fileName = "PngSuite/BGAN6A08.PNG";
// Image with alpha transparency
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image42 = new Image(pdf, fis);
fileName = "PngSuite/OI1N2C16.PNG";
// Color image with 1 IDAT chunk
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image43 = new Image(pdf, fis);
fileName = "PngSuite/OI4N2C16.PNG";
// Color image with 2 IDAT chunks
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image44 = new Image(pdf, fis);
fileName = "PngSuite/OI4N2C16.PNG";
// Color image with 4 IDAT chunks
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image45 = new Image(pdf, fis);
fileName = "PngSuite/OI9N2C16.PNG";
// IDAT chunks with length == 1
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image46 = new Image(pdf, fis);
fileName = "PngSuite/OI1N0G16.PNG";
// Grayscale image with 1 IDAT chunk
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image47 = new Image(pdf, fis);
fileName = "PngSuite/OI4N0G16.PNG";
// Grayscale image with 2 IDAT chunks
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image48 = new Image(pdf, fis);
fileName = "PngSuite/OI4N0G16.PNG";
// Grayscale image with 4 IDAT chunks
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image49 = new Image(pdf, fis);
fileName = "PngSuite/OI9N0G16.PNG";
// IDAT chunks with length == 1
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image50 = new Image(pdf, fis);
fileName = "PngSuite/TBBN3P08.PNG";
// Transparent, black background chunk
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image51 = new Image(pdf, fis);
fileName = "PngSuite/TBGN3P08.PNG";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image52 = new Image(pdf, fis);
fileName = "PngSuite/TBWN3P08.PNG";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image53 = new Image(pdf, fis);
fileName = "PngSuite/TBYN3P08.PNG";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image54 = new Image(pdf, fis);
fileName = "images/LGK_ADDRESS.PNG";
fis = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image image55 = new Image(pdf, fis);
Page page = new Page(pdf, A4.PORTRAIT);
image1.SetLocation(100f, 80f);
image1.DrawOn(page);
image2.SetLocation(100f, 120f);
image2.DrawOn(page);
image3.SetLocation(100f, 160f);
image3.DrawOn(page);
image4.SetLocation(100f, 200f);
image4.DrawOn(page);
image5.SetLocation(200f, 80f);
image5.DrawOn(page);
image6.SetLocation(200f, 120f);
image6.DrawOn(page);
image7.SetLocation(200f, 160f);
image7.DrawOn(page);
image8.SetLocation(200f, 200f);
image8.DrawOn(page);
image9.SetLocation(200f, 240f);
image9.DrawOn(page);
image10.SetLocation(200f, 280f);
image10.DrawOn(page);
image11.SetLocation(200f, 320f);
image11.DrawOn(page);
image12.SetLocation(200f, 360f);
image12.DrawOn(page);
image13.SetLocation(200f, 400f);
image13.DrawOn(page);
image14.SetLocation(300f, 80f);
image14.DrawOn(page);
image15.SetLocation(300f, 120f);
image15.DrawOn(page);
image16.SetLocation(300f, 160f);
image16.DrawOn(page);
image17.SetLocation(300f, 200f);
image17.DrawOn(page);
image18.SetLocation(300f, 240f);
image18.DrawOn(page);
image19.SetLocation(300f, 280f);
image19.DrawOn(page);
image20.SetLocation(300f, 320f);
image20.DrawOn(page);
image21.SetLocation(300f, 360f);
image21.DrawOn(page);
image22.SetLocation(300f, 400f);
image22.DrawOn(page);
image23.SetLocation(350f, 50f);
image23.DrawOn(page);
image24.SetLocation(100f, 650f);
image24.DrawOn(page);
image25.SetLocation(140f, 650f);
image25.DrawOn(page);
image26.SetLocation(180f, 650f);
image26.DrawOn(page);
image27.SetLocation(220f, 650f);
image27.DrawOn(page);
image28.SetLocation(260f, 650f);
image28.DrawOn(page);
image29.SetLocation(300f, 650f);
image29.DrawOn(page);
image30.SetLocation(340f, 650f);
image30.DrawOn(page);
image31.SetLocation(380f, 650f);
image31.DrawOn(page);
image32.SetLocation(420f, 650f);
image32.DrawOn(page);
image33.SetLocation(100f, 700f);
image33.DrawOn(page);
image34.SetLocation(140f, 700f);
image34.DrawOn(page);
image35.SetLocation(180f, 700f);
image35.DrawOn(page);
image36.SetLocation(220f, 700f);
image36.DrawOn(page);
image37.SetLocation(260f, 700f);
image37.DrawOn(page);
image38.SetLocation(300f, 700f);
image38.DrawOn(page);
image39.SetLocation(340f, 700f);
image39.DrawOn(page);
image40.SetLocation(380f, 700f);
image40.DrawOn(page);
image41.SetLocation(420f, 700f);
image41.DrawOn(page);
image42.SetLocation(100f, 750f);
image42.DrawOn(page);
image43.SetLocation(140f, 750f);
image43.DrawOn(page);
image44.SetLocation(180f, 750f);
image44.DrawOn(page);
image45.SetLocation(220f, 750f);
image45.DrawOn(page);
image46.SetLocation(260f, 750f);
image46.DrawOn(page);
image47.SetLocation(300f, 750f);
image47.DrawOn(page);
image48.SetLocation(340f, 750f);
image48.DrawOn(page);
image49.SetLocation(380f, 750f);
image49.DrawOn(page);
image50.SetLocation(420f, 750f);
image50.DrawOn(page);
image51.SetLocation(300f, 800f);
image51.DrawOn(page);
image52.SetLocation(340f, 800f);
image52.DrawOn(page);
image53.SetLocation(380f, 800f);
image53.DrawOn(page);
image54.SetLocation(420f, 800f);
image54.DrawOn(page);
image55.SetLocation(100f, 500f);
image55.DrawOn(page);
pdf.Complete();
}
public static void Main(String[] args) {
Stopwatch sw = Stopwatch.StartNew();
long time0 = sw.ElapsedMilliseconds;
new Example_17();
long time1 = sw.ElapsedMilliseconds;
sw.Stop();
Console.WriteLine($"Example_17 => {time1 - time0,4} ms");
}
} // End of Example_17.cs
©2026 PDFjet Software.