├── .appveyor.yml ├── .cmake-format.yaml ├── .editorconfig ├── .editorconfig-checker.json ├── .github └── workflows │ └── lint.yml ├── .gitignore ├── .yamllint.yml ├── ANNOUNCE ├── AUTHORS ├── CHANGES ├── CMakeLists.txt ├── INSTALL ├── LICENSE ├── Makefile.am ├── Makefile.in ├── README ├── TODO ├── TRADEMARK ├── aclocal.m4 ├── arm ├── arm_init.c ├── filter_neon.S ├── filter_neon_intrinsics.c └── palette_neon_intrinsics.c ├── autogen.sh ├── ci ├── .shellcheckrc ├── LICENSE_MIT.txt ├── README.md ├── ci_lint.sh ├── ci_verify_cmake.sh ├── ci_verify_configure.sh ├── ci_verify_makefiles.sh ├── ci_verify_version.sh ├── lib │ └── ci.lib.sh ├── libexec │ ├── ci_shellify_autoconf.sh │ ├── ci_shellify_c.sh │ ├── ci_shellify_cmake.sh │ └── ci_shellify_shell.sh └── targets │ ├── android │ ├── ci_env.aarch64-linux-android.sh │ ├── ci_env.armv7a-linux-androideabi.sh │ ├── ci_env.i686-linux-android.sh │ └── ci_env.x86_64-linux-android.sh │ ├── cygwin │ ├── ci_env.i686-pc-cygwin.sh │ └── ci_env.x86_64-pc-cygwin.sh │ ├── darwin │ ├── ci_env.arm64-apple-darwin.sh │ └── ci_env.x86_64-apple-darwin.sh │ ├── freebsd │ ├── ci_env.aarch64-unknown-freebsd.sh │ ├── ci_env.i686-unknown-freebsd.sh │ ├── ci_env.riscv64-unknown-freebsd.sh │ └── ci_env.x86_64-unknown-freebsd.sh │ ├── linux │ ├── ci_env.aarch64-linux-gnu.sh │ ├── ci_env.arm-linux-gnueabi.sh │ ├── ci_env.arm-linux-gnueabihf.sh │ ├── ci_env.i686-linux-gnu.sh │ ├── ci_env.mips-linux-gnu.sh │ ├── ci_env.mips64-linux-gnuabi64.sh │ ├── ci_env.mips64el-linux-gnuabi64.sh │ ├── ci_env.mipsel-linux-gnu.sh │ ├── ci_env.mipsisa32r6-linux-gnu.sh │ ├── ci_env.mipsisa32r6el-linux-gnu.sh │ ├── ci_env.mipsisa64r6-linux-gnuabi64.sh │ ├── ci_env.mipsisa64r6el-linux-gnuabi64.sh │ ├── ci_env.powerpc-linux-gnu.sh │ ├── ci_env.powerpc64-linux-gnu.sh │ ├── ci_env.powerpc64le-linux-gnu.sh │ ├── ci_env.riscv64-linux-gnu.sh │ └── ci_env.x86_64-linux-gnu.sh │ ├── msdos │ ├── ci_env.i386-pc-msdoswatcom.sh │ ├── ci_env.i586-pc-msdosdjgpp.sh │ └── ci_env.i86-pc-msdoswatcom.sh │ └── windows │ ├── ci_env.aarch64-windows-llvm.sh │ ├── ci_env.i686-w64-mingw32.sh │ ├── ci_env.i686-windows-llvm.sh │ ├── ci_env.x86_64-w64-mingw32.sh │ └── ci_env.x86_64-windows-llvm.sh ├── compile ├── config.guess ├── config.h.in ├── config.sub ├── configure ├── configure.ac ├── contrib ├── .editorconfig ├── README.txt ├── arm-neon │ ├── README │ ├── android-ndk.c │ ├── linux-auxv.c │ └── linux.c ├── conftest │ ├── README │ ├── basic.dfa │ ├── fixed.dfa │ ├── float-fixed.dfa │ ├── nocompile-limits.dfa │ ├── nolimits.dfa │ ├── pngcp.dfa │ ├── read-full.dfa │ ├── read.dfa │ ├── s_read.dfa │ ├── s_write.dfa │ ├── simple.dfa │ ├── write-full.dfa │ └── write.dfa ├── examples │ ├── .clang-format │ ├── README.txt │ ├── iccfrompng.c │ ├── pngpixel.c │ ├── pngtopng.c │ └── simpleover.c ├── gregbook │ ├── COPYING │ ├── LICENSE │ ├── Makefile.mingw32 │ ├── Makefile.sgi │ ├── Makefile.unx │ ├── Makefile.w32 │ ├── README │ ├── makevms.com │ ├── readpng.c │ ├── readpng.h │ ├── readpng2.c │ ├── readpng2.h │ ├── readppm.c │ ├── rpng-win.c │ ├── rpng-x.c │ ├── rpng2-win.c │ ├── rpng2-x.c │ ├── toucan.png │ ├── wpng.c │ ├── writepng.c │ └── writepng.h ├── libtests │ ├── fakepng.c │ ├── gentests.sh │ ├── makepng.c │ ├── pngimage.c │ ├── pngstest-errors.h │ ├── pngstest.c │ ├── pngunknown.c │ ├── pngvalid.c │ ├── readpng.c │ ├── tarith.c │ └── timepng.c ├── mips-mmi │ └── linux.c ├── mips-msa │ ├── README │ └── linux.c ├── oss-fuzz │ ├── Dockerfile │ ├── README.txt │ ├── build.sh │ ├── libpng_read_fuzzer.cc │ ├── libpng_read_fuzzer.options │ └── png.dict ├── pngexif │ ├── .editorconfig │ ├── .gitignore │ ├── .pylintrc │ ├── LICENSE_MIT.txt │ ├── README.md │ ├── bytepack.py │ ├── exifinfo.py │ ├── pngexifinfo │ ├── pngexifinfo.bat │ └── pngexifinfo.py ├── pngminim │ ├── README │ ├── decoder │ │ ├── README │ │ ├── makefile │ │ ├── pngusr.dfa │ │ └── pngusr.h │ ├── encoder │ │ ├── README │ │ ├── makefile │ │ ├── pngusr.dfa │ │ └── pngusr.h │ └── preader │ │ ├── README │ │ ├── makefile │ │ ├── pngusr.dfa │ │ └── pngusr.h ├── pngminus │ ├── .editorconfig │ ├── .gitignore │ ├── CHANGES.txt │ ├── CMakeLists.txt │ ├── LICENSE.txt │ ├── Makefile │ ├── README.txt │ ├── makevms.com │ ├── png2pnm.c │ ├── pnm2png.c │ ├── test_png2pnm.bat │ ├── test_png2pnm.sh │ ├── test_pngminus.bat │ ├── test_pngminus.sh │ ├── test_pnm2png.bat │ └── test_pnm2png.sh ├── pngsuite │ ├── README │ ├── bad_interlace_conversions.txt │ ├── basn0g01.png │ ├── basn0g02.png │ ├── basn0g04.png │ ├── basn0g08.png │ ├── basn0g16.png │ ├── basn2c08.png │ ├── basn2c16.png │ ├── basn3p01.png │ ├── basn3p02.png │ ├── basn3p04.png │ ├── basn3p08.png │ ├── basn4a08.png │ ├── basn4a16.png │ ├── basn6a08.png │ ├── basn6a16.png │ ├── ftbbn0g01.png │ ├── ftbbn0g02.png │ ├── ftbbn0g04.png │ ├── ftbbn2c16.png │ ├── ftbbn3p08.png │ ├── ftbgn2c16.png │ ├── ftbgn3p08.png │ ├── ftbrn2c08.png │ ├── ftbwn0g16.png │ ├── ftbwn3p08.png │ ├── ftbyn3p08.png │ ├── ftp0n0g08.png │ ├── ftp0n2c08.png │ ├── ftp0n3p08.png │ ├── ftp1n3p08.png │ ├── ibasn0g08.png │ ├── ibasn0g16.png │ ├── ibasn2c08.png │ ├── ibasn2c16.png │ ├── ibasn3p08.png │ ├── ibasn4a08.png │ ├── ibasn4a16.png │ ├── ibasn6a08.png │ ├── ibasn6a16.png │ ├── iftbbn2c16.png │ ├── iftbbn3p08.png │ ├── iftbgn2c16.png │ ├── iftbgn3p08.png │ ├── iftbrn2c08.png │ ├── iftbwn0g16.png │ ├── iftbwn3p08.png │ ├── iftbyn3p08.png │ ├── iftp0n0g08.png │ ├── iftp0n2c08.png │ ├── iftp0n3p08.png │ ├── iftp1n3p08.png │ └── interlaced │ │ ├── README │ │ ├── ibasn0g01.png │ │ ├── ibasn0g02.png │ │ ├── ibasn0g04.png │ │ ├── ibasn3p01.png │ │ ├── ibasn3p02.png │ │ ├── ibasn3p04.png │ │ ├── iftbbn0g01.png │ │ ├── iftbbn0g02.png │ │ └── iftbbn0g04.png ├── powerpc-vsx │ ├── README │ ├── linux.c │ └── linux_aux.c ├── riscv-rvv │ ├── README │ └── linux.c ├── testpngs │ ├── badpal │ │ ├── regression-palette-8.png │ │ ├── small-palette-1.png │ │ ├── small-palette-2.png │ │ ├── small-palette-4.png │ │ ├── small-palette-8.png │ │ ├── test-palette-1.png │ │ ├── test-palette-2.png │ │ ├── test-palette-4.png │ │ └── test-palette-8.png │ ├── crashers │ │ ├── bad_iCCP.png │ │ ├── badadler.png │ │ ├── badcrc.png │ │ ├── empty_ancillary_chunks.png │ │ ├── huge_IDAT.png │ │ ├── huge_bKGD_chunk.png │ │ ├── huge_cHRM_chunk.png │ │ ├── huge_eXIf_chunk.png │ │ ├── huge_gAMA_chunk.png │ │ ├── huge_hIST_chunk.png │ │ ├── huge_iCCP_chunk.png │ │ ├── huge_iTXt_chunk.png │ │ ├── huge_juNK_unsafe_to_copy.png │ │ ├── huge_juNk_safe_to_copy.png │ │ ├── huge_pCAL_chunk.png │ │ ├── huge_pHYs_chunk.png │ │ ├── huge_sCAL_chunk.png │ │ ├── huge_sPLT_chunk.png │ │ ├── huge_sRGB_chunk.png │ │ ├── huge_sTER_chunk.png │ │ ├── huge_tEXt_chunk.png │ │ ├── huge_tIME_chunk.png │ │ └── huge_zTXt_chunk.png │ ├── gray-1-1.8-tRNS.png │ ├── gray-1-1.8.png │ ├── gray-1-linear-tRNS.png │ ├── gray-1-linear.png │ ├── gray-1-sRGB-tRNS.png │ ├── gray-1-sRGB.png │ ├── gray-1-tRNS.png │ ├── gray-1.png │ ├── gray-16-1.8-tRNS.png │ ├── gray-16-1.8.png │ ├── gray-16-linear-tRNS.png │ ├── gray-16-linear.png │ ├── gray-16-sRGB-tRNS.png │ ├── gray-16-sRGB.png │ ├── gray-16-tRNS.png │ ├── gray-16.png │ ├── gray-2-1.8-tRNS.png │ ├── gray-2-1.8.png │ ├── gray-2-linear-tRNS.png │ ├── gray-2-linear.png │ ├── gray-2-sRGB-tRNS.png │ ├── gray-2-sRGB.png │ ├── gray-2-tRNS.png │ ├── gray-2.png │ ├── gray-4-1.8-tRNS.png │ ├── gray-4-1.8.png │ ├── gray-4-linear-tRNS.png │ ├── gray-4-linear.png │ ├── gray-4-sRGB-tRNS.png │ ├── gray-4-sRGB.png │ ├── gray-4-tRNS.png │ ├── gray-4.png │ ├── gray-8-1.8-tRNS.png │ ├── gray-8-1.8.png │ ├── gray-8-linear-tRNS.png │ ├── gray-8-linear.png │ ├── gray-8-sRGB-tRNS.png │ ├── gray-8-sRGB.png │ ├── gray-8-tRNS.png │ ├── gray-8.png │ ├── gray-alpha-16-1.8.png │ ├── gray-alpha-16-linear.png │ ├── gray-alpha-16-sRGB.png │ ├── gray-alpha-16.png │ ├── gray-alpha-8-1.8.png │ ├── gray-alpha-8-linear.png │ ├── gray-alpha-8-sRGB.png │ ├── gray-alpha-8.png │ ├── makepngs.sh │ ├── palette-1-1.8-tRNS.png │ ├── palette-1-1.8.png │ ├── palette-1-linear-tRNS.png │ ├── palette-1-linear.png │ ├── palette-1-sRGB-tRNS.png │ ├── palette-1-sRGB.png │ ├── palette-1-tRNS.png │ ├── palette-1.png │ ├── palette-2-1.8-tRNS.png │ ├── palette-2-1.8.png │ ├── palette-2-linear-tRNS.png │ ├── palette-2-linear.png │ ├── palette-2-sRGB-tRNS.png │ ├── palette-2-sRGB.png │ ├── palette-2-tRNS.png │ ├── palette-2.png │ ├── palette-4-1.8-tRNS.png │ ├── palette-4-1.8.png │ ├── palette-4-linear-tRNS.png │ ├── palette-4-linear.png │ ├── palette-4-sRGB-tRNS.png │ ├── palette-4-sRGB.png │ ├── palette-4-tRNS.png │ ├── palette-4.png │ ├── palette-8-1.8-tRNS.png │ ├── palette-8-1.8.png │ ├── palette-8-linear-tRNS.png │ ├── palette-8-linear.png │ ├── palette-8-sRGB-tRNS.png │ ├── palette-8-sRGB.png │ ├── palette-8-tRNS.png │ ├── palette-8.png │ ├── png-3 │ │ └── cicp-display-p3_reencoded.png │ ├── rgb-16-1.8-tRNS.png │ ├── rgb-16-1.8.png │ ├── rgb-16-linear-tRNS.png │ ├── rgb-16-linear.png │ ├── rgb-16-sRGB-tRNS.png │ ├── rgb-16-sRGB.png │ ├── rgb-16-tRNS.png │ ├── rgb-16.png │ ├── rgb-8-1.8-tRNS.png │ ├── rgb-8-1.8.png │ ├── rgb-8-linear-tRNS.png │ ├── rgb-8-linear.png │ ├── rgb-8-sRGB-tRNS.png │ ├── rgb-8-sRGB.png │ ├── rgb-8-tRNS.png │ ├── rgb-8.png │ ├── rgb-alpha-16-1.8.png │ ├── rgb-alpha-16-linear.png │ ├── rgb-alpha-16-sRGB.png │ ├── rgb-alpha-16.png │ ├── rgb-alpha-8-1.8.png │ ├── rgb-alpha-8-linear.png │ ├── rgb-alpha-8-sRGB.png │ └── rgb-alpha-8.png ├── tools │ ├── README.txt │ ├── checksum-icc.c │ ├── cvtcolor.c │ ├── genpng.c │ ├── intgamma.sh │ ├── makesRGB.c │ ├── png-fix-itxt.c │ ├── pngcp.c │ ├── pngfix.c │ └── sRGB.h └── visupng │ ├── .editorconfig │ ├── PngFile.c │ ├── PngFile.h │ ├── README.txt │ ├── VisualPng.c │ ├── VisualPng.dsp │ ├── VisualPng.dsw │ ├── VisualPng.ico │ ├── VisualPng.png │ ├── VisualPng.rc │ ├── cexcept.h │ └── resource.h ├── depcomp ├── example.c ├── install-sh ├── intel ├── filter_sse2_intrinsics.c └── intel_init.c ├── libpng-config.in ├── libpng-manual.txt ├── libpng.3 ├── libpng.pc.in ├── libpngpf.3 ├── loongarch ├── .editorconfig ├── filter_lsx_intrinsics.c └── loongarch_lsx_init.c ├── ltmain.sh ├── mips ├── .editorconfig ├── filter_mmi_inline_assembly.c ├── filter_msa_intrinsics.c └── mips_init.c ├── missing ├── png.5 ├── png.c ├── png.h ├── pngbar.jpg ├── pngbar.png ├── pngconf.h ├── pngdebug.h ├── pngerror.c ├── pngget.c ├── pnginfo.h ├── pngmem.c ├── pngnow.png ├── pngpread.c ├── pngpriv.h ├── pngread.c ├── pngrio.c ├── pngrtran.c ├── pngrutil.c ├── pngset.c ├── pngstruct.h ├── pngtest.c ├── pngtest.png ├── pngtrans.c ├── pngusr.dfa ├── pngwio.c ├── pngwrite.c ├── pngwtran.c ├── pngwutil.c ├── powerpc ├── .editorconfig ├── filter_vsx_intrinsics.c └── powerpc_init.c ├── projects ├── .editorconfig ├── owatcom │ ├── libpng.tgt │ ├── libpng.wpj │ ├── pngconfig.mak │ ├── pngstest.tgt │ ├── pngtest.tgt │ └── pngvalid.tgt ├── visualc71 │ ├── PRJ0041.mak │ ├── README.txt │ ├── README_zlib.txt │ ├── libpng.sln │ ├── libpng.vcproj │ ├── pngtest.vcproj │ └── zlib.vcproj └── vstudio │ ├── README.txt │ ├── build.bat │ ├── libpng │ └── libpng.vcxproj │ ├── pnglibconf │ └── pnglibconf.vcxproj │ ├── pngstest │ └── pngstest.vcxproj │ ├── pngtest │ └── pngtest.vcxproj │ ├── pngunknown │ └── pngunknown.vcxproj │ ├── pngvalid │ └── pngvalid.vcxproj │ ├── vstudio.sln │ ├── zlib.props │ └── zlib │ └── zlib.vcxproj ├── riscv ├── .editorconfig ├── filter_rvv_intrinsics.c └── riscv_init.c ├── scripts ├── README.txt ├── SCOPTIONS.ppc ├── autoconf │ ├── README.md │ ├── libtool.m4 │ ├── ltoptions.m4 │ ├── ltsugar.m4 │ ├── ltversion.m4 │ └── lt~obsolete.m4 ├── checksym.awk ├── cmake │ ├── AUTHORS.md │ ├── PNGCheckLibconf.cmake │ ├── PNGConfig.cmake │ ├── PNGGenConfig.cmake │ ├── PNGTest.cmake │ ├── README.md │ ├── genchk.cmake.in │ ├── genout.cmake.in │ ├── gensrc.cmake.in │ └── test.cmake.in ├── descrip.mms ├── dfn.awk ├── intprefix.c ├── libpng-config-body.in ├── libpng-config-head.in ├── libpng.pc.in ├── macro.lst ├── makefile.32sunu ├── makefile.64sunu ├── makefile.aix ├── makefile.amiga ├── makefile.atari ├── makefile.bc32 ├── makefile.beos ├── makefile.c89 ├── makefile.clang ├── makefile.darwin ├── makefile.dec ├── makefile.dj2 ├── makefile.emcc ├── makefile.freebsd ├── makefile.gcc ├── makefile.hp64 ├── makefile.hpgcc ├── makefile.hpux ├── makefile.ibmc ├── makefile.intel ├── makefile.linux ├── makefile.mips ├── makefile.msys ├── makefile.netbsd ├── makefile.openbsd ├── makefile.riscos ├── makefile.sco ├── makefile.sggcc ├── makefile.sgi ├── makefile.so9 ├── makefile.solaris ├── makefile.std ├── makefile.sunos ├── makefile.vcwin-arm64 ├── makefile.vcwin32 ├── makevms.com ├── options.awk ├── pnglibconf.dfa ├── pnglibconf.h.prebuilt ├── pnglibconf.mak ├── pngwin.rc ├── prefix.c ├── smakefile.ppc ├── sym.c ├── symbols.c ├── symbols.def └── vers.c ├── test-driver └── tests ├── pngimage-full ├── pngimage-quick ├── pngstest ├── pngstest-1.8 ├── pngstest-1.8-alpha ├── pngstest-linear ├── pngstest-linear-alpha ├── pngstest-none ├── pngstest-none-alpha ├── pngstest-sRGB ├── pngstest-sRGB-alpha ├── pngtest-all ├── pngunknown-IDAT ├── pngunknown-discard ├── pngunknown-if-safe ├── pngunknown-sAPI ├── pngunknown-sTER ├── pngunknown-save ├── pngunknown-vpAg ├── pngvalid-gamma-16-to-8 ├── pngvalid-gamma-alpha-mode ├── pngvalid-gamma-background ├── pngvalid-gamma-expand16-alpha-mode ├── pngvalid-gamma-expand16-background ├── pngvalid-gamma-expand16-transform ├── pngvalid-gamma-sbit ├── pngvalid-gamma-threshold ├── pngvalid-gamma-transform ├── pngvalid-progressive-interlace-standard ├── pngvalid-progressive-size ├── pngvalid-progressive-standard ├── pngvalid-standard └── pngvalid-transform /.editorconfig: -------------------------------------------------------------------------------- 1 | # https://editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | insert_final_newline = true 8 | trim_trailing_whitespace = true 9 | 10 | [*.txt] 11 | indent_size = unset 12 | indent_style = space 13 | 14 | [*.[chS]] 15 | indent_size = 3 16 | indent_style = space 17 | max_doc_length = 80 18 | max_line_length = 80 19 | 20 | [*.dfa] 21 | indent_size = 3 22 | indent_style = space 23 | max_doc_length = 80 24 | max_line_length = 80 25 | 26 | [*.awk] 27 | indent_size = 3 28 | indent_style = space 29 | max_doc_length = 80 30 | max_line_length = 100 31 | 32 | [*.cmake] 33 | indent_size = 2 34 | indent_style = space 35 | max_doc_length = 80 36 | max_line_length = 100 37 | 38 | [*.sh] 39 | indent_size = 4 40 | indent_style = space 41 | max_doc_length = 100 42 | max_line_length = 100 43 | 44 | [{Makefile.in,aclocal.m4,ltmain.sh}] 45 | indent_size = unset 46 | indent_style = unset 47 | insert_final_newline = unset 48 | max_doc_length = unset 49 | max_line_length = unset 50 | trim_trailing_whitespace = unset 51 | 52 | [COMMIT_EDITMSG] 53 | indent_style = space 54 | max_doc_length = unset 55 | max_line_length = 72 56 | -------------------------------------------------------------------------------- /.editorconfig-checker.json: -------------------------------------------------------------------------------- 1 | { 2 | "Disable": { 3 | "IndentSize": true 4 | }, 5 | "Exclude": [ 6 | ".git/", 7 | "out/" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /.github/workflows/lint.yml: -------------------------------------------------------------------------------- 1 | name: Linting libpng 2 | 3 | on: 4 | push: 5 | branches: 6 | - libpng16 7 | - libpng18 8 | pull_request: 9 | branches: 10 | - libpng16 11 | - libpng18 12 | 13 | jobs: 14 | lint: 15 | runs-on: ubuntu-latest 16 | timeout-minutes: 5 17 | steps: 18 | - name: Set up the cache 19 | uses: actions/cache@v4 20 | with: 21 | path: ~/.cache/pip 22 | key: ${{ runner.os }}-pip-${{ hashFiles('**/pip.txt') }} 23 | restore-keys: ${{ runner.os }}-pip- 24 | - name: Install yamllint 25 | run: pip install yamllint 26 | - name: Install editorconfig-checker 27 | uses: editorconfig-checker/action-editorconfig-checker@main 28 | - name: Check out the code 29 | uses: actions/checkout@v4 30 | - name: Run the linting script 31 | run: bash ./ci/ci_lint.sh 32 | -------------------------------------------------------------------------------- /.yamllint.yml: -------------------------------------------------------------------------------- 1 | extends: default 2 | rules: 3 | document-start: disable 4 | document-end: disable 5 | line-length: disable 6 | truthy: 7 | check-keys: false 8 | -------------------------------------------------------------------------------- /ANNOUNCE: -------------------------------------------------------------------------------- 1 | libpng 1.6.49.git 2 | ================= 3 | 4 | This is a development version, not intended to be a public release. 5 | It will be replaced by a public release, or by another development 6 | version, at a later time. 7 | 8 | 9 | libpng 1.6.48 - April 30, 2025 10 | ============================== 11 | 12 | This is a public release of libpng, intended for use in production code. 13 | 14 | 15 | Files available for download 16 | ---------------------------- 17 | 18 | Source files with LF line endings (for Unix/Linux): 19 | 20 | * libpng-1.6.48.tar.xz (LZMA-compressed, recommended) 21 | * libpng-1.6.48.tar.gz (deflate-compressed) 22 | 23 | Source files with CRLF line endings (for Windows): 24 | 25 | * lpng1648.7z (LZMA-compressed, recommended) 26 | * lpng1648.zip (deflate-compressed) 27 | 28 | Other information: 29 | 30 | * README.md 31 | * LICENSE.md 32 | * AUTHORS.md 33 | * TRADEMARK.md 34 | 35 | 36 | Changes from version 1.6.47 to version 1.6.48 37 | --------------------------------------------- 38 | 39 | * Fixed the floating-point version of the mDCv setter `png_set_mDCv`. 40 | (Reported by Mohit Bakshi; fixed by John Bowler) 41 | * Added #error directives to discourage the inclusion of private 42 | libpng implementation header files in PNG-supporting applications. 43 | * Added the CMake build option `PNG_LIBCONF_HEADER`, to be used as an 44 | alternative to `DFA_XTRA`. 45 | * Removed the Travis CI configuration files, with heartfelt thanks for 46 | their generous support of our project over the past five years! 47 | 48 | 49 | Send comments/corrections/commendations to png-mng-implement at lists.sf.net. 50 | Subscription is required; visit 51 | https://lists.sourceforge.net/lists/listinfo/png-mng-implement 52 | to subscribe. 53 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | PNG REFERENCE LIBRARY AUTHORS 2 | ============================= 3 | 4 | This is the list of PNG Reference Library ("libpng") Contributing 5 | Authors, for copyright and licensing purposes. 6 | 7 | * Adam Richter 8 | * Andreas Dilger 9 | * Chris Blume 10 | * Cosmin Truta 11 | * Dave Martindale 12 | * Eric S. Raymond 13 | * Gilles Vollant 14 | * Glenn Randers-Pehrson 15 | * Greg Roelofs 16 | * Guy Eric Schalnat 17 | * James Yu 18 | * John Bowler 19 | * Kevin Bracey 20 | * Lucas Chollet 21 | * Magnus Holmgren 22 | * Mandar Sahastrabuddhe 23 | * Manfred Schlaegl 24 | * Mans Rullgard 25 | * Matt Sarett 26 | * Mike Klein 27 | * Pascal Massimino 28 | * Paul Schmidt 29 | * Philippe Antoine 30 | * Qiang Zhou 31 | * Sam Bushell 32 | * Samuel Williams 33 | * Simon-Pierre Cadieux 34 | * Tim Wegner 35 | * Tom Lane 36 | * Tom Tanner 37 | * Vadim Barkov 38 | * Willem van Schaik 39 | * Zhijie Liang 40 | * Apple Inc. 41 | - Zixu Wang (王子旭) 42 | * Arm Holdings 43 | - Richard Townsend 44 | * Google LLC 45 | - Dan Field 46 | - Dragoș Tiselice 47 | - Leon Scroggins III 48 | - Matt Sarett 49 | - Mike Klein 50 | - Sami Boukortt 51 | - Wan-Teh Chang 52 | * Loongson Technology Corporation Ltd. 53 | - GuXiWei (顾希伟) 54 | - JinBo (金波) 55 | - ZhangLixia (张利霞) 56 | * Samsung Group 57 | - Filip Wasil 58 | 59 | The build projects, the build scripts, the test scripts, and other 60 | files in the "projects", "scripts" and "tests" directories, have 61 | other copyright owners, but are released under the libpng license. 62 | 63 | Some files in the "ci" and "contrib" directories, as well as some 64 | of the tools-generated files that are distributed with libpng, have 65 | other copyright owners, and are released under other open source 66 | licenses. 67 | -------------------------------------------------------------------------------- /TODO: -------------------------------------------------------------------------------- 1 | TODO list for libpng 2 | -------------------- 3 | 4 | * Fix all defects (duh!) 5 | * cHRM transformation. 6 | * Palette creation. 7 | * "grayscale->palette" transformation and "palette->grayscale" detection. 8 | * Improved dithering. 9 | * Multi-lingual error and warning message support. 10 | * Complete sRGB transformation. (Currently it simply uses gamma=0.45455.) 11 | * Man pages for function calls. 12 | * Better documentation. 13 | * Better filter selection 14 | (e.g., counting huffman bits/precompression; filter inertia; filter costs). 15 | * Histogram creation. 16 | * Text conversion between different code pages (e.g., Latin-1 to Mac). 17 | * Avoid building gamma tables whenever possible. 18 | * Greater precision in changing to linear gamma for compositing against 19 | background, and in doing rgb-to-gray transformations. 20 | * Investigate pre-incremented loop counters and other loop constructions. 21 | * Interpolated method of handling interlacing. 22 | * More validations for libpng transformations. 23 | -------------------------------------------------------------------------------- /TRADEMARK: -------------------------------------------------------------------------------- 1 | TRADEMARK 2 | ========= 3 | 4 | The name "libpng" has not been registered by the Copyright owners 5 | as a trademark in any jurisdiction. However, because libpng has 6 | been distributed and maintained world-wide, continually since 1995, 7 | the Copyright owners claim "common-law trademark protection" in any 8 | jurisdiction where common-law trademark is recognized. 9 | -------------------------------------------------------------------------------- /ci/.shellcheckrc: -------------------------------------------------------------------------------- 1 | # Disable the "expressions don't expand in single quotes, use double quotes" 2 | # advice. We need the regular expressions to remain uninterpolated. 3 | disable=SC2016 4 | 5 | # Disable the "variable appears unused" warning caused by the use of getopts 6 | # with an obligatory (but unused) variable name in the main function. 7 | disable=SC2034 8 | 9 | # Disable all the "quote to prevent globbing or word splitting" advice. 10 | # We need word splitting for well-known variables like MAKEFLAGS and CFLAGS. 11 | disable=SC2086,SC2206 12 | -------------------------------------------------------------------------------- /ci/LICENSE_MIT.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. 20 | -------------------------------------------------------------------------------- /ci/README.md: -------------------------------------------------------------------------------- 1 | Scripts for the Continuous Integration of the PNG Reference Library 2 | =================================================================== 3 | 4 | Copyright Notice 5 | ---------------- 6 | 7 | Copyright (c) 2019-2025 Cosmin Truta. 8 | 9 | Use, modification and distribution are subject to the MIT License. 10 | Please see the accompanying file `LICENSE_MIT.txt` or visit 11 | https://opensource.org/license/mit 12 | 13 | File List 14 | --------- 15 | 16 | LICENSE_MIT.txt ==> The License file 17 | README.md ==> This file 18 | ci_lint.sh ==> Lint the source code 19 | ci_shellify.sh ==> Convert select definitions to shell syntax 20 | ci_verify_cmake.sh ==> Verify the build driven by CMakeLists.txt 21 | ci_verify_configure.sh ==> Verify the build driven by configure 22 | ci_verify_makefiles.sh ==> Verify the build driven by scripts/makefile.* 23 | ci_verify_version.sh ==> Verify the consistency of version definitions 24 | lib/ci.lib.sh ==> Shell utilities for the main ci_*.sh scripts 25 | targets/*/ci_env.*.sh ==> Shell environments for cross-platform testing 26 | -------------------------------------------------------------------------------- /ci/libexec/ci_shellify_autoconf.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -o errexit -o pipefail -o posix 3 | 4 | # Copyright (c) 2019-2025 Cosmin Truta. 5 | # 6 | # Use, modification and distribution are subject to the MIT License. 7 | # Please see the accompanying file LICENSE_MIT.txt 8 | # 9 | # SPDX-License-Identifier: MIT 10 | 11 | # shellcheck source=ci/lib/ci.lib.sh 12 | source "$(dirname "$0")/../lib/ci.lib.sh" 13 | 14 | function ci_shellify_autoconf { 15 | # Convert autoconf (M4) text, specifically originating 16 | # from configure.ac, to shell scripting text. 17 | # Select only the easy-to-parse definitions of PNGLIB_*. 18 | sed -n -e '/^ *PNGLIB_[^ ]*=[$"0-9A-Za-z_]/ p' | 19 | sed -e 's/^ *PNG\([0-9A-Za-z_]*\)=\([^# ]*\).*$/PNG\1=\2/' \ 20 | -e 's/^\([^ ]*=[^ ]*\).*$/export \1;/' 21 | } 22 | 23 | function usage { 24 | echo "usage: $CI_SCRIPT_NAME [] configure.ac" 25 | echo "options: -?|-h|--help" 26 | exit "${@:-0}" 27 | } 28 | 29 | function main { 30 | local opt 31 | while getopts ":" opt 32 | do 33 | # This ain't a while-loop. It only pretends to be. 34 | [[ $1 == -[?h]* || $1 == --help || $1 == --help=* ]] && usage 0 35 | ci_err "unknown option: '$1'" 36 | done 37 | shift $((OPTIND - 1)) 38 | [[ $# -eq 0 ]] && usage 2 39 | [[ $# -eq 1 ]] || ci_err "too many operands" 40 | # And... go! 41 | test -e "$1" || ci_err "no such file: '$1'" 42 | [[ $(basename -- "$1") == configure.ac ]] || { 43 | ci_err "incorrect operand: '$1' (expecting: 'configure.ac')" 44 | } 45 | ci_shellify_autoconf <"$1" 46 | } 47 | 48 | main "$@" 49 | -------------------------------------------------------------------------------- /ci/libexec/ci_shellify_c.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -o errexit -o pipefail -o posix 3 | 4 | # Copyright (c) 2019-2025 Cosmin Truta. 5 | # 6 | # Use, modification and distribution are subject to the MIT License. 7 | # Please see the accompanying file LICENSE_MIT.txt 8 | # 9 | # SPDX-License-Identifier: MIT 10 | 11 | # shellcheck source=ci/lib/ci.lib.sh 12 | source "$(dirname "$0")/../lib/ci.lib.sh" 13 | 14 | function ci_shellify_c { 15 | # Convert C preprocessor text, specifically originating 16 | # from png.h, to shell scripting text. 17 | # Select only the easy-to-parse definitions of PNG_LIBPNG_*. 18 | sed -n -e '/^\# *define * PNG_LIBPNG_[^ ]* * ["0-9A-Za-z_]/ p' | 19 | sed -e 's/^\# *define * PNG\([^ ]*\) * \([^ ]*\)/PNG\1=\2/' \ 20 | -e 's/=PNG\([0-9A-Za-z_]*\)/=\${PNG\1}/' \ 21 | -e 's/^\([^ ]*=[^ ]*\).*$/export \1;/' 22 | } 23 | 24 | function usage { 25 | echo "usage: $CI_SCRIPT_NAME [] png.h" 26 | echo "options: -?|-h|--help" 27 | exit "${@:-0}" 28 | } 29 | 30 | function main { 31 | local opt 32 | while getopts ":" opt 33 | do 34 | # This ain't a while-loop. It only pretends to be. 35 | [[ $1 == -[?h]* || $1 == --help || $1 == --help=* ]] && usage 0 36 | ci_err "unknown option: '$1'" 37 | done 38 | shift $((OPTIND - 1)) 39 | [[ $# -eq 0 ]] && usage 2 40 | [[ $# -eq 1 ]] || ci_err "too many operands" 41 | # And... go! 42 | test -e "$1" || ci_err "no such file: '$1'" 43 | [[ $(basename -- "$1") == png.h ]] || { 44 | ci_err "incorrect operand: '$1' (expecting: 'png.h')" 45 | } 46 | ci_shellify_c <"$1" 47 | } 48 | 49 | main "$@" 50 | -------------------------------------------------------------------------------- /ci/libexec/ci_shellify_cmake.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -o errexit -o pipefail -o posix 3 | 4 | # Copyright (c) 2019-2025 Cosmin Truta. 5 | # 6 | # Use, modification and distribution are subject to the MIT License. 7 | # Please see the accompanying file LICENSE_MIT.txt 8 | # 9 | # SPDX-License-Identifier: MIT 10 | 11 | # shellcheck source=ci/lib/ci.lib.sh 12 | source "$(dirname "$0")/../lib/ci.lib.sh" 13 | 14 | function ci_shellify_cmake { 15 | # Convert CMake lists text, specifically originating 16 | # from CMakeLists.txt, to shell scripting text. 17 | # Select only the easy-to-parse definitions of PNGLIB_*. 18 | sed -n -e '/^ *set *(PNGLIB_[^ ]* * [$"0-9A-Za-z_].*)/ p' | 19 | sed -e 's/^ *set *(PNG\([^ ]*\) * \([^() ]*\)).*$/PNG\1=\2/' \ 20 | -e 's/^\([^ ]*=[^ ]*\).*$/export \1;/' 21 | } 22 | 23 | function usage { 24 | echo "usage: $CI_SCRIPT_NAME [] CMakeLists.txt" 25 | echo "options: -?|-h|--help" 26 | exit "${@:-0}" 27 | } 28 | 29 | function main { 30 | local opt 31 | while getopts ":" opt 32 | do 33 | # This ain't a while-loop. It only pretends to be. 34 | [[ $1 == -[?h]* || $1 == --help || $1 == --help=* ]] && usage 0 35 | ci_err "unknown option: '$1'" 36 | done 37 | shift $((OPTIND - 1)) 38 | [[ $# -eq 0 ]] && usage 2 39 | [[ $# -eq 1 ]] || ci_err "too many operands" 40 | # And... go! 41 | test -e "$1" || ci_err "no such file: '$1'" 42 | filename="$(basename -- "$1")" 43 | [[ $filename == [Cc][Mm]ake[Ll]ists.txt ]] || { 44 | ci_err "incorrect operand: '$1' (expecting: 'CMakeLists.txt')" 45 | } 46 | ci_shellify_cmake <"$1" 47 | } 48 | 49 | main "$@" 50 | -------------------------------------------------------------------------------- /ci/libexec/ci_shellify_shell.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -o errexit -o pipefail -o posix 3 | 4 | # Copyright (c) 2019-2025 Cosmin Truta. 5 | # 6 | # Use, modification and distribution are subject to the MIT License. 7 | # Please see the accompanying file LICENSE_MIT.txt 8 | # 9 | # SPDX-License-Identifier: MIT 10 | 11 | # shellcheck source=ci/lib/ci.lib.sh 12 | source "$(dirname "$0")/../lib/ci.lib.sh" 13 | 14 | function ci_shellify_shell { 15 | # Convert shell scripting text to shell scripting text. 16 | # Select only the easy-to-parse version definitions. 17 | sed -n -e '/^ *[A-Za-z_][0-9A-Za-z_]*=[0-9][^ #]* *$/ p' | 18 | sed -e 's/^ *\([^ ]*=[^ ]*\) *$/export \1;/' 19 | } 20 | 21 | function usage { 22 | echo "usage: $CI_SCRIPT_NAME [] libpng-config-head.in" 23 | echo "options: -?|-h|--help" 24 | exit "${@:-0}" 25 | } 26 | 27 | function main { 28 | local opt 29 | while getopts ":" opt 30 | do 31 | # This ain't a while-loop. It only pretends to be. 32 | [[ $1 == -[?h]* || $1 == --help || $1 == --help=* ]] && usage 0 33 | ci_err "unknown option: '$1'" 34 | done 35 | shift $((OPTIND - 1)) 36 | [[ $# -eq 0 ]] && usage 2 37 | [[ $# -eq 1 ]] || ci_err "too many operands" 38 | # And... go! 39 | test -e "$1" || ci_err "no such file: '$1'" 40 | [[ $(basename -- "$1") == libpng-config-head.in ]] || { 41 | ci_err "incorrect operand: '$1' (expecting: 'libpng-config-head.in')" 42 | } 43 | ci_shellify_shell <"$1" 44 | } 45 | 46 | main "$@" 47 | -------------------------------------------------------------------------------- /ci/targets/android/ci_env.aarch64-linux-android.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=aarch64 9 | export CI_TARGET_ARCHVER=aarch64 10 | export CI_TARGET_SYSTEM=linux 11 | export CI_TARGET_ABI=android 12 | export CI_TARGET_ABIVER=android29 13 | 14 | export CI_CC="$CI_TARGET_ARCHVER-$CI_TARGET_SYSTEM-$CI_TARGET_ABIVER-clang" 15 | export CI_AR="llvm-ar" 16 | export CI_RANLIB="llvm-ranlib" 17 | -------------------------------------------------------------------------------- /ci/targets/android/ci_env.armv7a-linux-androideabi.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=arm 9 | export CI_TARGET_ARCHVER=armv7a 10 | export CI_TARGET_SYSTEM=linux 11 | export CI_TARGET_ABI=androideabi 12 | export CI_TARGET_ABIVER=androideabi29 13 | 14 | export CI_CC="$CI_TARGET_ARCHVER-$CI_TARGET_SYSTEM-$CI_TARGET_ABIVER-clang" 15 | export CI_AR="llvm-ar" 16 | export CI_RANLIB="llvm-ranlib" 17 | -------------------------------------------------------------------------------- /ci/targets/android/ci_env.i686-linux-android.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=i686 9 | export CI_TARGET_ARCHVER=i686 10 | export CI_TARGET_SYSTEM=linux 11 | export CI_TARGET_ABI=android 12 | export CI_TARGET_ABIVER=android29 13 | 14 | export CI_CC="$CI_TARGET_ARCHVER-$CI_TARGET_SYSTEM-$CI_TARGET_ABIVER-clang" 15 | export CI_AR="llvm-ar" 16 | export CI_RANLIB="llvm-ranlib" 17 | -------------------------------------------------------------------------------- /ci/targets/android/ci_env.x86_64-linux-android.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=x86_64 9 | export CI_TARGET_ARCHVER=x86_64 10 | export CI_TARGET_SYSTEM=linux 11 | export CI_TARGET_ABI=android 12 | export CI_TARGET_ABIVER=android29 13 | 14 | export CI_CC="$CI_TARGET_ARCHVER-$CI_TARGET_SYSTEM-$CI_TARGET_ABIVER-clang" 15 | export CI_AR="llvm-ar" 16 | export CI_RANLIB="llvm-ranlib" 17 | -------------------------------------------------------------------------------- /ci/targets/cygwin/ci_env.i686-pc-cygwin.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=i686 9 | export CI_TARGET_SYSTEM=cygwin 10 | 11 | export CI_CC="$CI_TARGET_ARCH-pc-$CI_TARGET_SYSTEM-gcc" 12 | export CI_AR="$CI_CC-ar" 13 | export CI_RANLIB="$CI_CC-ranlib" 14 | 15 | export CI_CMAKE_VARS=" 16 | -DCMAKE_SYSTEM_NAME=CYGWIN 17 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 18 | " 19 | -------------------------------------------------------------------------------- /ci/targets/cygwin/ci_env.x86_64-pc-cygwin.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=x86_64 9 | export CI_TARGET_SYSTEM=cygwin 10 | 11 | export CI_CC="$CI_TARGET_ARCH-pc-$CI_TARGET_SYSTEM-gcc" 12 | export CI_AR="$CI_CC-ar" 13 | export CI_RANLIB="$CI_CC-ranlib" 14 | 15 | export CI_CMAKE_VARS=" 16 | -DCMAKE_SYSTEM_NAME=CYGWIN 17 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 18 | " 19 | -------------------------------------------------------------------------------- /ci/targets/darwin/ci_env.arm64-apple-darwin.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=arm64 9 | export CI_TARGET_SYSTEM=darwin 10 | 11 | export CI_CMAKE_VARS=" 12 | -DCMAKE_SYSTEM_NAME=Darwin 13 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 14 | -DCMAKE_OSX_ARCHITECTURES=$CI_TARGET_ARCH 15 | " 16 | -------------------------------------------------------------------------------- /ci/targets/darwin/ci_env.x86_64-apple-darwin.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=x86_64 9 | export CI_TARGET_SYSTEM=darwin 10 | 11 | export CI_CMAKE_VARS=" 12 | -DCMAKE_SYSTEM_NAME=Darwin 13 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 14 | -DCMAKE_OSX_ARCHITECTURES=$CI_TARGET_ARCH 15 | " 16 | -------------------------------------------------------------------------------- /ci/targets/freebsd/ci_env.aarch64-unknown-freebsd.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=aarch64 9 | export CI_TARGET_SYSTEM=freebsd 10 | 11 | export CI_CMAKE_VARS=" 12 | -DCMAKE_SYSTEM_NAME=FreeBSD 13 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 14 | " 15 | -------------------------------------------------------------------------------- /ci/targets/freebsd/ci_env.i686-unknown-freebsd.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=i686 9 | export CI_TARGET_SYSTEM=freebsd 10 | 11 | export CI_CMAKE_VARS=" 12 | -DCMAKE_SYSTEM_NAME=FreeBSD 13 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 14 | " 15 | -------------------------------------------------------------------------------- /ci/targets/freebsd/ci_env.riscv64-unknown-freebsd.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=riscv64 9 | export CI_TARGET_SYSTEM=freebsd 10 | 11 | export CI_CMAKE_VARS=" 12 | -DCMAKE_SYSTEM_NAME=FreeBSD 13 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 14 | " 15 | -------------------------------------------------------------------------------- /ci/targets/freebsd/ci_env.x86_64-unknown-freebsd.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=x86_64 9 | export CI_TARGET_SYSTEM=freebsd 10 | 11 | export CI_CMAKE_VARS=" 12 | -DCMAKE_SYSTEM_NAME=FreeBSD 13 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 14 | " 15 | -------------------------------------------------------------------------------- /ci/targets/linux/ci_env.aarch64-linux-gnu.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=aarch64 9 | export CI_TARGET_SYSTEM=linux 10 | export CI_TARGET_ABI=gnu 11 | 12 | export CI_GCC="${CI_GCC-gcc}" 13 | 14 | export CI_CC="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-$CI_GCC" 15 | export CI_AR="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ar" 16 | export CI_RANLIB="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ranlib" 17 | 18 | export CI_CMAKE_VARS=" 19 | -DCMAKE_SYSTEM_NAME=Linux 20 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 21 | " 22 | -------------------------------------------------------------------------------- /ci/targets/linux/ci_env.arm-linux-gnueabi.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=arm 9 | export CI_TARGET_SYSTEM=linux 10 | export CI_TARGET_ABI=gnueabi 11 | 12 | export CI_GCC="${CI_GCC-gcc}" 13 | 14 | export CI_CC="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-$CI_GCC" 15 | export CI_AR="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ar" 16 | export CI_RANLIB="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ranlib" 17 | 18 | export CI_CMAKE_VARS=" 19 | -DCMAKE_SYSTEM_NAME=Linux 20 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 21 | " 22 | -------------------------------------------------------------------------------- /ci/targets/linux/ci_env.arm-linux-gnueabihf.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=arm 9 | export CI_TARGET_SYSTEM=linux 10 | export CI_TARGET_ABI=gnueabihf 11 | 12 | export CI_GCC="${CI_GCC-gcc}" 13 | 14 | export CI_CC="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-$CI_GCC" 15 | export CI_AR="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ar" 16 | export CI_RANLIB="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ranlib" 17 | 18 | export CI_CMAKE_VARS=" 19 | -DCMAKE_SYSTEM_NAME=Linux 20 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 21 | " 22 | -------------------------------------------------------------------------------- /ci/targets/linux/ci_env.i686-linux-gnu.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=i686 9 | export CI_TARGET_SYSTEM=linux 10 | export CI_TARGET_ABI=gnu 11 | 12 | export CI_GCC="${CI_GCC-gcc}" 13 | 14 | export CI_CC="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-$CI_GCC" 15 | export CI_AR="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ar" 16 | export CI_RANLIB="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ranlib" 17 | 18 | export CI_CMAKE_VARS=" 19 | -DCMAKE_SYSTEM_NAME=Linux 20 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 21 | " 22 | -------------------------------------------------------------------------------- /ci/targets/linux/ci_env.mips-linux-gnu.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=mips 9 | export CI_TARGET_SYSTEM=linux 10 | export CI_TARGET_ABI=gnu 11 | 12 | export CI_GCC="${CI_GCC-gcc}" 13 | 14 | export CI_CC="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-$CI_GCC" 15 | export CI_AR="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ar" 16 | export CI_RANLIB="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ranlib" 17 | 18 | export CI_CMAKE_VARS=" 19 | -DCMAKE_SYSTEM_NAME=Linux 20 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 21 | " 22 | -------------------------------------------------------------------------------- /ci/targets/linux/ci_env.mips64-linux-gnuabi64.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=mips64 9 | export CI_TARGET_SYSTEM=linux 10 | export CI_TARGET_ABI=gnuabi64 11 | 12 | export CI_GCC="${CI_GCC-gcc}" 13 | 14 | export CI_CC="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-$CI_GCC" 15 | export CI_AR="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ar" 16 | export CI_RANLIB="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ranlib" 17 | 18 | export CI_CMAKE_VARS=" 19 | -DCMAKE_SYSTEM_NAME=Linux 20 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 21 | " 22 | -------------------------------------------------------------------------------- /ci/targets/linux/ci_env.mips64el-linux-gnuabi64.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=mips64el 9 | export CI_TARGET_SYSTEM=linux 10 | export CI_TARGET_ABI=gnuabi64 11 | 12 | export CI_GCC="${CI_GCC-gcc}" 13 | 14 | export CI_CC="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-$CI_GCC" 15 | export CI_AR="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ar" 16 | export CI_RANLIB="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ranlib" 17 | 18 | export CI_CMAKE_VARS=" 19 | -DCMAKE_SYSTEM_NAME=Linux 20 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 21 | " 22 | -------------------------------------------------------------------------------- /ci/targets/linux/ci_env.mipsel-linux-gnu.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=mipsel 9 | export CI_TARGET_SYSTEM=linux 10 | export CI_TARGET_ABI=gnu 11 | 12 | export CI_GCC="${CI_GCC-gcc}" 13 | 14 | export CI_CC="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-$CI_GCC" 15 | export CI_AR="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ar" 16 | export CI_RANLIB="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ranlib" 17 | 18 | export CI_CMAKE_VARS=" 19 | -DCMAKE_SYSTEM_NAME=Linux 20 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 21 | " 22 | -------------------------------------------------------------------------------- /ci/targets/linux/ci_env.mipsisa32r6-linux-gnu.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=mipsisa32r6 9 | export CI_TARGET_SYSTEM=linux 10 | export CI_TARGET_ABI=gnu 11 | 12 | export CI_GCC="${CI_GCC-gcc}" 13 | 14 | export CI_CC="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-$CI_GCC" 15 | export CI_AR="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ar" 16 | export CI_RANLIB="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ranlib" 17 | 18 | export CI_CMAKE_VARS=" 19 | -DCMAKE_SYSTEM_NAME=Linux 20 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 21 | " 22 | -------------------------------------------------------------------------------- /ci/targets/linux/ci_env.mipsisa32r6el-linux-gnu.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=mipsisa32r6el 9 | export CI_TARGET_SYSTEM=linux 10 | export CI_TARGET_ABI=gnu 11 | 12 | export CI_GCC="${CI_GCC-gcc}" 13 | 14 | export CI_CC="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-$CI_GCC" 15 | export CI_AR="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ar" 16 | export CI_RANLIB="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ranlib" 17 | 18 | export CI_CMAKE_VARS=" 19 | -DCMAKE_SYSTEM_NAME=Linux 20 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 21 | " 22 | -------------------------------------------------------------------------------- /ci/targets/linux/ci_env.mipsisa64r6-linux-gnuabi64.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=mipsisa64r6 9 | export CI_TARGET_SYSTEM=linux 10 | export CI_TARGET_ABI=gnuabi64 11 | 12 | export CI_GCC="${CI_GCC-gcc}" 13 | 14 | export CI_CC="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-$CI_GCC" 15 | export CI_AR="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ar" 16 | export CI_RANLIB="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ranlib" 17 | 18 | export CI_CMAKE_VARS=" 19 | -DCMAKE_SYSTEM_NAME=Linux 20 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 21 | " 22 | -------------------------------------------------------------------------------- /ci/targets/linux/ci_env.mipsisa64r6el-linux-gnuabi64.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=mipsisa64r6el 9 | export CI_TARGET_SYSTEM=linux 10 | export CI_TARGET_ABI=gnuabi64 11 | 12 | export CI_GCC="${CI_GCC-gcc}" 13 | 14 | export CI_CC="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-$CI_GCC" 15 | export CI_AR="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ar" 16 | export CI_RANLIB="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ranlib" 17 | 18 | export CI_CMAKE_VARS=" 19 | -DCMAKE_SYSTEM_NAME=Linux 20 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 21 | " 22 | -------------------------------------------------------------------------------- /ci/targets/linux/ci_env.powerpc-linux-gnu.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=powerpc 9 | export CI_TARGET_SYSTEM=linux 10 | export CI_TARGET_ABI=gnu 11 | 12 | export CI_GCC="${CI_GCC-gcc}" 13 | 14 | export CI_CC="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-$CI_GCC" 15 | export CI_AR="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ar" 16 | export CI_RANLIB="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ranlib" 17 | 18 | export CI_CMAKE_VARS=" 19 | -DCMAKE_SYSTEM_NAME=Linux 20 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 21 | " 22 | -------------------------------------------------------------------------------- /ci/targets/linux/ci_env.powerpc64-linux-gnu.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=powerpc64 9 | export CI_TARGET_SYSTEM=linux 10 | export CI_TARGET_ABI=gnu 11 | 12 | export CI_GCC="${CI_GCC-gcc}" 13 | 14 | export CI_CC="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-$CI_GCC" 15 | export CI_AR="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ar" 16 | export CI_RANLIB="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ranlib" 17 | 18 | export CI_CMAKE_VARS=" 19 | -DCMAKE_SYSTEM_NAME=Linux 20 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 21 | " 22 | -------------------------------------------------------------------------------- /ci/targets/linux/ci_env.powerpc64le-linux-gnu.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=powerpc64le 9 | export CI_TARGET_SYSTEM=linux 10 | export CI_TARGET_ABI=gnu 11 | 12 | export CI_GCC="${CI_GCC-gcc}" 13 | 14 | export CI_CC="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-$CI_GCC" 15 | export CI_AR="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ar" 16 | export CI_RANLIB="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ranlib" 17 | 18 | export CI_CMAKE_VARS=" 19 | -DCMAKE_SYSTEM_NAME=Linux 20 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 21 | " 22 | -------------------------------------------------------------------------------- /ci/targets/linux/ci_env.riscv64-linux-gnu.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=riscv64 9 | export CI_TARGET_SYSTEM=linux 10 | export CI_TARGET_ABI=gnu 11 | 12 | export CI_GCC="${CI_GCC-gcc}" 13 | 14 | export CI_CC="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-$CI_GCC" 15 | export CI_AR="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ar" 16 | export CI_RANLIB="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ranlib" 17 | 18 | export CI_CMAKE_VARS=" 19 | -DCMAKE_SYSTEM_NAME=Linux 20 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 21 | " 22 | -------------------------------------------------------------------------------- /ci/targets/linux/ci_env.x86_64-linux-gnu.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=x86_64 9 | export CI_TARGET_SYSTEM=linux 10 | export CI_TARGET_ABI=gnu 11 | 12 | export CI_GCC="${CI_GCC-gcc}" 13 | 14 | export CI_CC="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-$CI_GCC" 15 | export CI_AR="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ar" 16 | export CI_RANLIB="$CI_TARGET_ARCH-$CI_TARGET_SYSTEM-$CI_TARGET_ABI-ranlib" 17 | 18 | export CI_CMAKE_VARS=" 19 | -DCMAKE_SYSTEM_NAME=Linux 20 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 21 | " 22 | -------------------------------------------------------------------------------- /ci/targets/msdos/ci_env.i386-pc-msdoswatcom.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=i386 9 | export CI_TARGET_SYSTEM=msdoswatcom 10 | 11 | export CI_CC="wcl386" 12 | 13 | # Open Watcom V2 CMake build 14 | # https://github.com/open-watcom/open-watcom-v2/discussions/716 15 | export CI_CMAKE_GENERATOR="Watcom WMake" 16 | export CI_CMAKE_VARS=" 17 | -DCMAKE_SYSTEM_NAME=DOS 18 | " 19 | -------------------------------------------------------------------------------- /ci/targets/msdos/ci_env.i586-pc-msdosdjgpp.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=i586 9 | export CI_TARGET_SYSTEM=msdosdjgpp 10 | 11 | export CI_CC="$CI_TARGET_ARCH-pc-$CI_TARGET_SYSTEM-gcc" 12 | export CI_AR="$CI_CC-ar" 13 | export CI_RANLIB="$CI_CC-ranlib" 14 | 15 | export CI_CMAKE_VARS=" 16 | -DCMAKE_SYSTEM_NAME=Generic 17 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 18 | " 19 | -------------------------------------------------------------------------------- /ci/targets/msdos/ci_env.i86-pc-msdoswatcom.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=i86 9 | export CI_TARGET_SYSTEM=msdoswatcom 10 | 11 | export CI_CC="wcl" 12 | 13 | # Open Watcom V2 CMake build 14 | # https://github.com/open-watcom/open-watcom-v2/discussions/716 15 | export CI_CMAKE_GENERATOR="Watcom WMake" 16 | export CI_CMAKE_VARS=" 17 | -DCMAKE_SYSTEM_NAME=DOS 18 | -DCMAKE_SYSTEM_PROCESSOR=I86 19 | " 20 | -------------------------------------------------------------------------------- /ci/targets/windows/ci_env.aarch64-windows-llvm.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=aarch64 9 | export CI_TARGET_SYSTEM=windows 10 | 11 | export CI_CC="clang" 12 | export CI_AR="llvm-ar" 13 | export CI_RANLIB="llvm-ranlib" 14 | 15 | export CI_CMAKE_VARS=" 16 | -DCMAKE_SYSTEM_NAME=Windows 17 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 18 | " 19 | -------------------------------------------------------------------------------- /ci/targets/windows/ci_env.i686-w64-mingw32.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=i686 9 | export CI_TARGET_SYSTEM=mingw32 10 | 11 | # The output of `uname -s` on MSYS2 is understandable, and so is 12 | # CI_TARGET_SYSTEM above, in simplified form. (See also Cygwin.) 13 | # But aside from that, the Mingw-w64 nomenclature is rather messy. 14 | export CI_CC="$CI_TARGET_ARCH-w64-mingw32-gcc" 15 | export CI_AR="$CI_CC-ar" 16 | export CI_RANLIB="$CI_CC-ranlib" 17 | 18 | export CI_CMAKE_VARS=" 19 | -DCMAKE_SYSTEM_NAME=Windows 20 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 21 | " 22 | -------------------------------------------------------------------------------- /ci/targets/windows/ci_env.i686-windows-llvm.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=i686 9 | export CI_TARGET_SYSTEM=windows 10 | 11 | export CI_CC="clang" 12 | export CI_AR="llvm-ar" 13 | export CI_RANLIB="llvm-ranlib" 14 | 15 | export CI_CMAKE_VARS=" 16 | -DCMAKE_SYSTEM_NAME=Windows 17 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 18 | " 19 | -------------------------------------------------------------------------------- /ci/targets/windows/ci_env.x86_64-w64-mingw32.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=x86_64 9 | export CI_TARGET_SYSTEM=mingw64 10 | 11 | # The output of `uname -s` on MSYS2 is understandable, and so is 12 | # CI_TARGET_SYSTEM above, in simplified form. (See also Cygwin.) 13 | # But aside from that, the Mingw-w64 nomenclature is rather messy. 14 | export CI_CC="$CI_TARGET_ARCH-w64-mingw32-gcc" 15 | export CI_AR="$CI_CC-ar" 16 | export CI_RANLIB="$CI_CC-ranlib" 17 | 18 | export CI_CMAKE_VARS=" 19 | -DCMAKE_SYSTEM_NAME=Windows 20 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 21 | " 22 | -------------------------------------------------------------------------------- /ci/targets/windows/ci_env.x86_64-windows-llvm.sh: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023-2024 Cosmin Truta. 2 | # 3 | # Use, modification and distribution are subject to the MIT License. 4 | # Please see the accompanying file LICENSE_MIT.txt 5 | # 6 | # SPDX-License-Identifier: MIT 7 | 8 | export CI_TARGET_ARCH=x86_64 9 | export CI_TARGET_SYSTEM=windows 10 | 11 | export CI_CC="clang" 12 | export CI_AR="llvm-ar" 13 | export CI_RANLIB="llvm-ranlib" 14 | 15 | export CI_CMAKE_VARS=" 16 | -DCMAKE_SYSTEM_NAME=Windows 17 | -DCMAKE_SYSTEM_PROCESSOR=$CI_TARGET_ARCH 18 | " 19 | -------------------------------------------------------------------------------- /contrib/.editorconfig: -------------------------------------------------------------------------------- 1 | # https://editorconfig.org 2 | 3 | root = false 4 | 5 | [*.[ch]] 6 | indent_size = unset 7 | indent_style = unset 8 | max_doc_length = unset 9 | max_line_length = unset 10 | -------------------------------------------------------------------------------- /contrib/README.txt: -------------------------------------------------------------------------------- 1 | External contributions to libpng 2 | -------------------------------- 3 | 4 | This "contrib" directory contains contributions which are not necessarily under 5 | the libpng license, although all are open source. They are not part of 6 | libpng proper and are not used for building the library, although some are used 7 | for testing the library via "make check". 8 | -------------------------------------------------------------------------------- /contrib/arm-neon/android-ndk.c: -------------------------------------------------------------------------------- 1 | /* contrib/arm-neon/android-ndk.c 2 | * 3 | * Copyright (c) 2014 Glenn Randers-Pehrson 4 | * Written by John Bowler, 2014. 5 | * 6 | * This code is released under the libpng license. 7 | * For conditions of distribution and use, see the disclaimer 8 | * and license in png.h 9 | * 10 | * SEE contrib/arm-neon/README before reporting bugs 11 | * 12 | * STATUS: COMPILED, UNTESTED 13 | * BUG REPORTS: png-mng-implement@sourceforge.net 14 | * 15 | * png_have_neon implemented for the Android NDK, see: 16 | * 17 | * Documentation: 18 | * http://www.kandroid.org/ndk/docs/CPU-ARM-NEON.html 19 | * https://code.google.com/p/android/issues/detail?id=49065 20 | * 21 | * NOTE: this requires that libpng is built against the Android NDK and linked 22 | * with an implementation of the Android ARM 'cpu-features' library. The code 23 | * has been compiled only, not linked: no version of the library has been found, 24 | * only the header files exist in the NDK. 25 | */ 26 | 27 | #include 28 | 29 | static int 30 | png_have_neon(png_structp png_ptr) 31 | { 32 | /* This is a whole lot easier than the linux code, however it is probably 33 | * implemented as below, therefore it is better to cache the result (these 34 | * function calls may be slow!) 35 | */ 36 | PNG_UNUSED(png_ptr) 37 | return android_getCpuFamily() == ANDROID_CPU_FAMILY_ARM && 38 | (android_getCpuFeatures() & ANDROID_CPU_ARM_FEATURE_NEON) != 0; 39 | } 40 | -------------------------------------------------------------------------------- /contrib/conftest/README: -------------------------------------------------------------------------------- 1 | This directory contains test configuration files, currently always '.dfa' files 2 | intended to be used in the build by setting the make macro DFA_XTRA to the name 3 | of the file. 4 | 5 | These files are used in release validation of the 'configure' builds of libpng 6 | by building 'make check', or 'make all-am' for cross-builds, with each .dfa 7 | file. 8 | 9 | The files in this directory may change between minor releases, however 10 | contributions describing specific builds of libpng are welcomed. There is no 11 | guarantee that libpng will continue to build with such configurations; support 12 | for given configurations can be, and has been, dropped between successive minor 13 | releases. However if a .dfa file describing a configuration is not in this 14 | directory it is very unlikely that it will be tested before a minor release! 15 | 16 | You can use these .dfa files as the basis of new configurations. Files in this 17 | directory should not have any use restrictions or restrictive licenses. 18 | 19 | This directory is not included in the .zip and .7z distributions, which do 20 | not contain 'configure' scripts. 21 | 22 | DOCUMENTATION 23 | ============= 24 | 25 | Examples: 26 | ${srcdir}/pngusr.dfa 27 | ${srcdir}/contrib/pngminim/*/pngusr.dfa 28 | 29 | Documentation of the options: 30 | ${srcdir}/scripts/pnglibconf.dfa 31 | 32 | Documentation of the file format: 33 | ${srcdir}/scripts/options.awk 34 | 35 | FILE NAMING 36 | =========== 37 | 38 | File names in this directory may NOT contain any of the five characters: 39 | 40 | - , + * ? 41 | 42 | Neither may they contain any space character. 43 | 44 | While other characters may be used it is strongly suggested that file names be 45 | limited to lower case Latiin alphabetic characters (a-z), digits (0-9) and, if 46 | necessary the underscore (_) character. File names should be about 8 characters 47 | long (excluding the .dfa extension). Submitted .dfa files should have names 48 | between 7 and 16 characters long, shorter names (6 characters or less) are 49 | reserved for standard tests. 50 | -------------------------------------------------------------------------------- /contrib/conftest/fixed.dfa: -------------------------------------------------------------------------------- 1 | # fixed.dfa 2 | # Build time configuration of libpng 3 | # 4 | # Author: John Bowler 5 | # Copyright: (c) John Bowler, 2025 6 | # Usage rights: 7 | # To the extent possible under law, the author has waived all copyright and 8 | # related or neighboring rights to this work. This work is published from: 9 | # United States. 10 | # 11 | # Test the standard libpng configuration without floating point (the internal 12 | # fixed point implementations are used instead). 13 | # 14 | option FLOATING_ARITHMETIC off 15 | option FLOATING_POINT off 16 | -------------------------------------------------------------------------------- /contrib/conftest/float-fixed.dfa: -------------------------------------------------------------------------------- 1 | # fixed-float.dfa 2 | # Build time configuration of libpng 3 | # 4 | # Author: John Bowler 5 | # Copyright: (c) John Bowler, 2025 6 | # Usage rights: 7 | # To the extent possible under law, the author has waived all copyright and 8 | # related or neighboring rights to this work. This work is published from: 9 | # United States. 10 | # 11 | # Test the standard libpng configuration with the fixed point internal 12 | # implementation in place of the default floating point 13 | # 14 | option FLOATING_ARITHMETIC off 15 | -------------------------------------------------------------------------------- /contrib/conftest/nocompile-limits.dfa: -------------------------------------------------------------------------------- 1 | # nolimits.dfa 2 | # Build time configuration of libpng 3 | # 4 | # Author: John Bowler 5 | # Copyright: (c) John Bowler, 2025 6 | # 7 | # Usage rights: 8 | # To the extent possible under law, the author has waived all copyright and 9 | # related or neighboring rights to this work. This work is published from: 10 | # United States. 11 | # 12 | # Build libpng without any limits and without run-time settable limits. Turning 13 | # USER_LIMITS off reduces libpng code size by allowing compile-time elimination 14 | # of some checking code. 15 | # 16 | option USER_LIMITS off 17 | 18 | @# define PNG_USER_WIDTH_MAX PNG_UINT_31_MAX 19 | @# define PNG_USER_HEIGHT_MAX PNG_UINT_31_MAX 20 | @# define PNG_USER_CHUNK_CACHE_MAX 0 21 | @# define PNG_USER_CHUNK_MALLOC_MAX 0 22 | -------------------------------------------------------------------------------- /contrib/conftest/nolimits.dfa: -------------------------------------------------------------------------------- 1 | # nolimits.dfa 2 | # Build time configuration of libpng 3 | # 4 | # Author: John Bowler 5 | # Copyright: (c) John Bowler, 2025 6 | # 7 | # Usage rights: 8 | # To the extent possible under law, the author has waived all copyright and 9 | # related or neighboring rights to this work. This work is published from: 10 | # United States. 11 | # 12 | # Build libpng without any limits. With these settigs run-time limits are still 13 | # possible. 14 | # 15 | @# define PNG_USER_WIDTH_MAX PNG_UINT_31_MAX 16 | @# define PNG_USER_HEIGHT_MAX PNG_UINT_31_MAX 17 | @# define PNG_USER_CHUNK_CACHE_MAX 0 18 | @# define PNG_USER_CHUNK_MALLOC_MAX 0 19 | 20 | -------------------------------------------------------------------------------- /contrib/conftest/read-full.dfa: -------------------------------------------------------------------------------- 1 | # read-full.dfa 2 | # Build time configuration of libpng 3 | # 4 | # Author: John Bowler 5 | # Copyright: (c) John Bowler, 2025 6 | # Usage rights: 7 | # To the extent possible under law, the author has waived all copyright and 8 | # related or neighboring rights to this work. This work is published from: 9 | # United States. 10 | # 11 | # Build libpng with no write support and full read support. 12 | # 13 | option WRITE off 14 | -------------------------------------------------------------------------------- /contrib/conftest/s_read.dfa: -------------------------------------------------------------------------------- 1 | # s_read.dfa 2 | # Build time configuration of libpng 3 | # 4 | # Author: John Bowler 5 | # Copyright: (c) John Bowler, 2013 6 | # Usage rights: 7 | # To the extent possible under law, the author has waived all copyright and 8 | # related or neighboring rights to this work. This work is published from: 9 | # United States. 10 | # 11 | # Build libpng with simplified read support (only). This builds a minimal 12 | # libpng able to read all PNG formats and convert them into a small number of 13 | # well understood memory formats. 14 | # 15 | 16 | everything = off 17 | 18 | option SIMPLIFIED_READ on 19 | 20 | # It isn't necessary to chose fixed or floating point for the APIs because the 21 | # simplified API doesn't need fixed or floating point numbers. It is necessary 22 | # to chose an internal math implementation. The default (because of 'everything 23 | # = off') is fixed point - turn the floating point implementation on if you have 24 | # hardware floating point or prefer your software floating point implementation. 25 | option FLOATING_ARITHMETIC on 26 | 27 | # This is not strictly necessary, but without it the message strings in the API 28 | # will not be filled in 29 | option ERROR_TEXT on 30 | 31 | # Switching these options on enables the 'AFIRST' and 'BGR' formats - you don't 32 | # need this if you don't use them, they just allow the in-memory layout to be 33 | # changed to match common hardware formats. 34 | option SIMPLIFIED_READ_AFIRST on 35 | option SIMPLIFIED_READ_BGR on 36 | -------------------------------------------------------------------------------- /contrib/conftest/s_write.dfa: -------------------------------------------------------------------------------- 1 | # s_write.dfa 2 | # Build time configuration of libpng 3 | # 4 | # Author: John Bowler 5 | # Copyright: (c) John Bowler, 2013 6 | # Usage rights: 7 | # To the extent possible under law, the author has waived all copyright and 8 | # related or neighboring rights to this work. This work is published from: 9 | # United States. 10 | # 11 | # Build libpng with (just) simplified write support 12 | # 13 | 14 | everything = off 15 | 16 | option SIMPLIFIED_WRITE on 17 | 18 | # It isn't necessary to chose fixed or floating point for the APIs because the 19 | # simplified API doesn't need fixed or floating point numbers. It is necessary 20 | # to chose an internal math implementation. The default (because of 'everything 21 | # = off') is fixed point - turn the floating point implementation on if you have 22 | # hardware floating point or prefer your software floating point implementation. 23 | option FLOATING_ARITHMETIC on 24 | 25 | # This is not strictly necessary, but without it the message strings in the API 26 | # will not be filled in 27 | option ERROR_TEXT on 28 | 29 | # Switching these options on enables the 'AFIRST' and 'BGR' formats - you don't 30 | # need this if you don't use them, they just allow the in-memory layout to be 31 | # changed to match common hardware formats. 32 | option SIMPLIFIED_WRITE_AFIRST on 33 | option SIMPLIFIED_WRITE_BGR on 34 | -------------------------------------------------------------------------------- /contrib/conftest/simple.dfa: -------------------------------------------------------------------------------- 1 | # simple.dfa 2 | # Build time configuration of libpng 3 | # 4 | # Author: John Bowler 5 | # Copyright: (c) John Bowler, 2013 6 | # Usage rights: 7 | # To the extent possible under law, the author has waived all copyright and 8 | # related or neighboring rights to this work. This work is published from: 9 | # United States. 10 | # 11 | # Build libpng with just the simplified APIs (read and write). 12 | # 13 | 14 | everything = off 15 | 16 | option SIMPLIFIED_WRITE on 17 | option SIMPLIFIED_READ on 18 | 19 | # It isn't necessary to chose fixed or floating point for the APIs because the 20 | # simplified API doesn't need fixed or floating point numbers. It is necessary 21 | # to chose an internal math implementation. The default (because of 'everything 22 | # = off') is fixed point - turn the floating point implementation on if you have 23 | # hardware floating point or prefer your software floating point implementation. 24 | option FLOATING_ARITHMETIC on 25 | 26 | # This is not strictly necessary, but without it the message strings in the API 27 | # will not be filled in 28 | option ERROR_TEXT on 29 | 30 | # Switching these options on enables the 'AFIRST' and 'BGR' formats - you don't 31 | # need this if you don't use them, they just allow the in-memory layout to be 32 | # changed to match common hardware formats. 33 | option SIMPLIFIED_READ_AFIRST on 34 | option SIMPLIFIED_READ_BGR on 35 | option SIMPLIFIED_WRITE_AFIRST on 36 | option SIMPLIFIED_WRITE_BGR on 37 | -------------------------------------------------------------------------------- /contrib/conftest/write-full.dfa: -------------------------------------------------------------------------------- 1 | # write-full.dfa 2 | # Build time configuration of libpng 3 | # 4 | # Author: John Bowler 5 | # Copyright: (c) John Bowler, 2025 6 | # Usage rights: 7 | # To the extent possible under law, the author has waived all copyright and 8 | # related or neighboring rights to this work. This work is published from: 9 | # United States. 10 | # 11 | # Build libpng with no read support and full write support. 12 | # 13 | option READ off 14 | -------------------------------------------------------------------------------- /contrib/conftest/write.dfa: -------------------------------------------------------------------------------- 1 | # write.dfa 2 | # Build time configuration of libpng 3 | # 4 | # Author: John Bowler 5 | # Copyright: (c) John Bowler, 2013 6 | # Usage rights: 7 | # To the extent possible under law, the author has waived all copyright and 8 | # related or neighboring rights to this work. This work is published from: 9 | # United States. 10 | # 11 | # Build libpng with no read support and minimal write support. 12 | # 13 | 14 | everything = off 15 | 16 | # Switch on the write code - this makes a minimalist encoder 17 | 18 | option WRITE on 19 | 20 | # Choose fixed or floating point APIs and arithmetic. The choices are 21 | # independent but normally they will match. It is typically better to use the 22 | # floating point if you have floating point hardware. If you don't know, or 23 | # (perhaps) to make libpng smaller used fixed point throughout. 24 | 25 | #Fixed point: 26 | #option FIXED_POINT on 27 | #option FLOATING_ARITHMETIC off 28 | 29 | #Floating point: 30 | option FLOATING_POINT on 31 | option FLOATING_ARITHMETIC on 32 | 33 | # Basic error handling, IO and user memory support. The latter allows the 34 | # application program to provide its own implementations of 'malloc' and 'free'. 35 | option SETJMP on 36 | option STDIO on 37 | option USER_MEM on 38 | 39 | # Everything else is optional. Unlike the read code in libpng the write code 40 | # does not need to deal with arbitrary formats, so only add support for things 41 | # you really do write! For example you might only write sRGB images, sometimes 42 | # with transparency and never write 16 bit images, so: 43 | option WRITE_sRGB on 44 | option WRITE_tRNS on 45 | #option WRITE_16BIT off (this is the default with 'everything = off') 46 | -------------------------------------------------------------------------------- /contrib/examples/README.txt: -------------------------------------------------------------------------------- 1 | This directory (contrib/examples) contains examples of libpng usage. 2 | 3 | NO COPYRIGHT RIGHTS ARE CLAIMED TO ANY OF THE FILES IN THIS DIRECTORY. 4 | 5 | To the extent possible under law, the authors have waived all copyright and 6 | related or neighboring rights to this work. This work is published from: 7 | United States. 8 | 9 | The files may be used freely in any way. The intention is that appropriate 10 | parts of the files be used in other libpng-using programs without any need for 11 | the authors of the using code to seek copyright or license from the original 12 | authors. 13 | 14 | The source code and comments in this directory are the original work of the 15 | people named below. No other person or organization has made contributions to 16 | the work in this directory. 17 | 18 | ORIGINAL AUTHORS 19 | The following people have contributed to the code in this directory. None 20 | of the people below claim any rights with regard to the contents of this 21 | directory. 22 | 23 | John Bowler 24 | -------------------------------------------------------------------------------- /contrib/gregbook/toucan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/gregbook/toucan.png -------------------------------------------------------------------------------- /contrib/libtests/fakepng.c: -------------------------------------------------------------------------------- 1 | /* Fake a PNG - just write it out directly. 2 | * 3 | * COPYRIGHT: Written by John Cunningham Bowler, 2014. 4 | * To the extent possible under law, the author has waived all copyright and 5 | * related or neighboring rights to this work. This work is published from: 6 | * United States. 7 | * 8 | */ 9 | 10 | #include 11 | #include /* for crc32 */ 12 | 13 | void 14 | put_uLong(uLong val) 15 | { 16 | putchar(val >> 24); 17 | putchar(val >> 16); 18 | putchar(val >> 8); 19 | putchar(val >> 0); 20 | } 21 | 22 | void 23 | put_chunk(const unsigned char *chunk, uInt length) 24 | { 25 | uLong crc; 26 | 27 | put_uLong(length-4); /* Exclude the tag */ 28 | 29 | fwrite(chunk, length, 1, stdout); 30 | 31 | crc = crc32(0, Z_NULL, 0); 32 | put_uLong(crc32(crc, chunk, length)); 33 | } 34 | 35 | const unsigned char signature[] = 36 | { 37 | 137, 80, 78, 71, 13, 10, 26, 10 38 | }; 39 | 40 | const unsigned char IHDR[] = 41 | { 42 | 73, 72, 68, 82, /* IHDR */ 43 | 0, 0, 0, 1, /* width */ 44 | 0, 0, 0, 1, /* height */ 45 | 1, /* bit depth */ 46 | 0, /* color type: greyscale */ 47 | 0, /* compression method */ 48 | 0, /* filter method */ 49 | 0 /* interlace method: none */ 50 | }; 51 | 52 | const unsigned char unknown[] = 53 | { 54 | 'u', 'n', 'K', 'n' /* "unKn" - private safe to copy */ 55 | }; 56 | 57 | int 58 | main(void) 59 | { 60 | fwrite(signature, sizeof signature, 1, stdout); 61 | put_chunk(IHDR, sizeof IHDR); 62 | 63 | for (;;) 64 | put_chunk(unknown, sizeof unknown); 65 | } 66 | -------------------------------------------------------------------------------- /contrib/mips-msa/linux.c: -------------------------------------------------------------------------------- 1 | /* contrib/mips-msa/linux.c 2 | * 3 | * Copyright (c) 2020-2023 Cosmin Truta 4 | * Copyright (c) 2016 Glenn Randers-Pehrson 5 | * Written by Mandar Sahastrabuddhe, 2016. 6 | * Updated by Sui Jingfeng, 2021. 7 | * 8 | * This code is released under the libpng license. 9 | * For conditions of distribution and use, see the disclaimer 10 | * and license in png.h 11 | * 12 | * On Linux, png_have_msa is implemented by reading the pseudo-file 13 | * "/proc/self/auxv". 14 | * 15 | * See contrib/mips-msa/README before reporting bugs. 16 | * 17 | * STATUS: SUPPORTED 18 | * BUG REPORTS: png-mng-implement@sourceforge.net 19 | */ 20 | 21 | #include 22 | #include 23 | #include 24 | #include 25 | 26 | static int 27 | png_have_msa(png_structp png_ptr) 28 | { 29 | Elf64_auxv_t aux; 30 | int fd; 31 | int has_msa = 0; 32 | 33 | fd = open("/proc/self/auxv", O_RDONLY); 34 | if (fd >= 0) 35 | { 36 | while (read(fd, &aux, sizeof(Elf64_auxv_t)) == sizeof(Elf64_auxv_t)) 37 | { 38 | if (aux.a_type == AT_HWCAP) 39 | { 40 | uint64_t hwcap = aux.a_un.a_val; 41 | 42 | has_msa = (hwcap >> 1) & 1; 43 | break; 44 | } 45 | } 46 | close(fd); 47 | } 48 | #ifdef PNG_WARNINGS_SUPPORTED 49 | else 50 | png_warning(png_ptr, "/proc/self/auxv open failed"); 51 | #endif 52 | 53 | return has_msa; 54 | } 55 | -------------------------------------------------------------------------------- /contrib/oss-fuzz/Dockerfile: -------------------------------------------------------------------------------- 1 | # Copyright 2016 Google Inc. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # 15 | ################################################################################ 16 | 17 | FROM gcr.io/oss-fuzz-base/base-builder 18 | MAINTAINER glennrp@gmail.com 19 | RUN apt-get update && \ 20 | apt-get install -y make autoconf automake libtool 21 | 22 | RUN git clone --depth 1 https://github.com/madler/zlib.git 23 | RUN git clone --depth 1 https://github.com/glennrp/libpng.git 24 | RUN cp libpng/contrib/oss-fuzz/build.sh $SRC 25 | WORKDIR libpng 26 | -------------------------------------------------------------------------------- /contrib/oss-fuzz/README.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2017 Glenn Randers-Pehrson 2 | 3 | This code is released under the libpng license. 4 | For conditions of distribution and use, see the disclaimer 5 | and license in png.h 6 | 7 | Files in this directory are used by the oss-fuzz project 8 | (https://github.com/google/oss-fuzz/tree/master/projects/libpng). 9 | for "fuzzing" libpng. 10 | 11 | They were licensed by Google Inc, using the BSD-like Chromium license, 12 | which may be found at https://cs.chromium.org/chromium/src/LICENSE, or, if 13 | noted in the source, under the Apache-2.0 license, which may 14 | be found at http://www.apache.org/licenses/LICENSE-2.0 . 15 | If they have been modified, the derivatives are copyright Glenn Randers-Pehrson 16 | and are released under the same licenses as the originals. Several of 17 | the original files (libpng_read_fuzzer.options, png.dict, project.yaml) 18 | had no licensing information; we assumed that these were under the Chromium 19 | license. Any new files are released under the libpng license (see png.h). 20 | 21 | The files are 22 | Original 23 | Filename or derived Copyright License 24 | ========================= ========== ================ ========== 25 | Dockerfile* derived 2017, Glenn R-P Apache 2.0 26 | build.sh derived 2017, Glenn R-P Apache 2.0 27 | libpng_read_fuzzer.cc derived 2017, Glenn R-P Chromium 28 | libpng_read_fuzzer.options original 2015, Chrome Devs Chromium 29 | png.dict original 2015, Chrome Devs Chromium 30 | README.txt (this file) original 2017, Glenn R-P libpng 31 | 32 | * Dockerfile is a copy of the file used by oss-fuzz. build.sh, 33 | png.dict and libpng_read_fuzzer.* are the actual files used by oss-fuzz, 34 | which retrieves them from the libpng repository at Github. 35 | 36 | To do: exercise the progressive reader and the png encoder. 37 | -------------------------------------------------------------------------------- /contrib/oss-fuzz/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -eu 2 | 3 | # Copyright 2017-2018 Glenn Randers-Pehrson 4 | # Copyright 2016 Google Inc. 5 | # 6 | # Licensed under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. 8 | # You may obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | # See the License for the specific language governing permissions and 16 | # limitations under the License. 17 | # 18 | # Revisions by Glenn Randers-Pehrson, 2017: 19 | # 1. Build only the library, not the tools (changed "make -j$(nproc) all" to 20 | # "make -j$(nproc) libpng16.la"). 21 | # 2. Disabled WARNING and WRITE options in pnglibconf.dfa. 22 | # 3. Build zlib alongside libpng 23 | ################################################################################ 24 | 25 | # Disable logging via library build configuration control. 26 | cat scripts/pnglibconf.dfa | \ 27 | sed -e "s/option STDIO/option STDIO disabled/" \ 28 | -e "s/option WARNING /option WARNING disabled/" \ 29 | -e "s/option WRITE enables WRITE_INT_FUNCTIONS/option WRITE disabled/" \ 30 | > scripts/pnglibconf.dfa.temp 31 | mv scripts/pnglibconf.dfa.temp scripts/pnglibconf.dfa 32 | 33 | # build the libpng library. 34 | autoreconf -f -i 35 | ./configure --with-libpng-prefix=OSS_FUZZ_ 36 | make -j$(nproc) clean 37 | make -j$(nproc) libpng16.la 38 | 39 | # build libpng_read_fuzzer. 40 | $CXX $CXXFLAGS -std=c++11 -I. \ 41 | $SRC/libpng/contrib/oss-fuzz/libpng_read_fuzzer.cc \ 42 | -o $OUT/libpng_read_fuzzer \ 43 | -lFuzzingEngine .libs/libpng16.a -lz 44 | 45 | # add seed corpus. 46 | find $SRC/libpng -name "*.png" | grep -v crashers | \ 47 | xargs zip $OUT/libpng_read_fuzzer_seed_corpus.zip 48 | 49 | cp $SRC/libpng/contrib/oss-fuzz/*.dict \ 50 | $SRC/libpng/contrib/oss-fuzz/*.options $OUT/ 51 | -------------------------------------------------------------------------------- /contrib/oss-fuzz/libpng_read_fuzzer.options: -------------------------------------------------------------------------------- 1 | [libfuzzer] 2 | dict = png.dict 3 | -------------------------------------------------------------------------------- /contrib/oss-fuzz/png.dict: -------------------------------------------------------------------------------- 1 | # 2 | # AFL dictionary for PNG images 3 | # ----------------------------- 4 | # 5 | # Just the basic, standard-originating sections; does not include vendor 6 | # extensions. 7 | # 8 | # Created by Michal Zalewski 9 | # 10 | 11 | header_png="\x89PNG\x0d\x0a\x1a\x0a" 12 | 13 | section_IDAT="IDAT" 14 | section_IEND="IEND" 15 | section_IHDR="IHDR" 16 | section_PLTE="PLTE" 17 | section_bKGD="bKGD" 18 | section_cHRM="cHRM" 19 | section_eXIf="eXIf" 20 | section_fRAc="fRAc" 21 | section_gAMA="gAMA" 22 | section_gIFg="gIFg" 23 | section_gIFt="gIFt" 24 | section_gIFx="gIFx" 25 | section_hIST="hIST" 26 | section_iCCP="iCCP" 27 | section_iTXt="iTXt" 28 | section_oFFs="oFFs" 29 | section_pCAL="pCAL" 30 | section_pHYs="pHYs" 31 | section_sBIT="sBIT" 32 | section_sCAL="sCAL" 33 | section_sPLT="sPLT" 34 | section_sRGB="sRGB" 35 | section_sTER="sTER" 36 | section_tEXt="tEXt" 37 | section_tIME="tIME" 38 | section_tRNS="tRNS" 39 | section_zTXt="zTXt" 40 | -------------------------------------------------------------------------------- /contrib/pngexif/.editorconfig: -------------------------------------------------------------------------------- 1 | # https://editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | indent_size = 4 8 | indent_style = space 9 | insert_final_newline = true 10 | max_doc_length = 79 11 | max_line_length = 79 12 | trim_trailing_whitespace = true 13 | -------------------------------------------------------------------------------- /contrib/pngexif/.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__ 2 | *.py[co] 3 | *$py.class 4 | -------------------------------------------------------------------------------- /contrib/pngexif/.pylintrc: -------------------------------------------------------------------------------- 1 | [COMPATIBILITY] 2 | disable=consider-using-f-string 3 | 4 | [COMPLEXITY] 5 | disable=too-many-branches,too-many-instance-attributes 6 | 7 | [STYLE] 8 | disable=consider-using-in 9 | -------------------------------------------------------------------------------- /contrib/pngexif/LICENSE_MIT.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. 20 | -------------------------------------------------------------------------------- /contrib/pngexif/README.md: -------------------------------------------------------------------------------- 1 | pngexifinfo 2 | =========== 3 | 4 | Show the EXIF information embedded in a PNG file. 5 | 6 | 7 | Sample usage 8 | ------------ 9 | 10 | Show the EXIF info inside a PNG file: 11 | 12 | pngexifinfo /path/to/file.png 13 | 14 | Show the EXIF info inside a raw `.exif` file, using base 16 for the EXIF tags: 15 | 16 | pngexifinfo --hex /path/to/file.exif 17 | 18 | Show the help text: 19 | 20 | pngexifinfo --help 21 | -------------------------------------------------------------------------------- /contrib/pngexif/bytepack.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | """ 4 | Byte packing and unpacking utilities. 5 | 6 | Copyright (C) 2017-2020 Cosmin Truta. 7 | 8 | Use, modification and distribution are subject to the MIT License. 9 | Please see the accompanying file LICENSE_MIT.txt 10 | """ 11 | 12 | from __future__ import absolute_import, division, print_function 13 | 14 | import struct 15 | 16 | 17 | def unpack_uint32be(buffer, offset=0): 18 | """Unpack an unsigned int from its 32-bit big-endian representation.""" 19 | return struct.unpack(">I", buffer[offset:offset + 4])[0] 20 | 21 | 22 | def unpack_uint32le(buffer, offset=0): 23 | """Unpack an unsigned int from its 32-bit little-endian representation.""" 24 | return struct.unpack("H", buffer[offset:offset + 2])[0] 30 | 31 | 32 | def unpack_uint16le(buffer, offset=0): 33 | """Unpack an unsigned int from its 16-bit little-endian representation.""" 34 | return struct.unpack("&2 "error: program not found: Python interpreter" 6 | exit 127 7 | } 8 | my_python_flags="-BES" 9 | 10 | exec "$my_python" "$my_python_flags" "$(dirname "$0")/pngexifinfo.py" "$@" 11 | -------------------------------------------------------------------------------- /contrib/pngexif/pngexifinfo.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | @setlocal enableextensions 3 | 4 | python.exe -BES %~dp0.\pngexifinfo.py %* 5 | -------------------------------------------------------------------------------- /contrib/pngminim/README: -------------------------------------------------------------------------------- 1 | This demonstrates the use of PNG_USER_CONFIG, pngusr.h and pngusr.dfa 2 | to build minimal decoder, encoder, and progressive reader applications. 3 | 4 | See the individual README and pngusr.dfa files for more explanation. 5 | -------------------------------------------------------------------------------- /contrib/pngminim/decoder/README: -------------------------------------------------------------------------------- 1 | This demonstrates the use of PNG_USER_CONFIG, pngusr.h and pngusr.dfa 2 | 3 | The makefile builds a minimal read-only decoder with embedded libpng 4 | and zlib. 5 | 6 | Specify the location of the zlib source (1.2.1 or later) as ZLIBSRC 7 | on the make command line. 8 | 9 | If you prefer to use the shared libraries, go to contrib/pngminus 10 | and build the png2pnm application there. 11 | -------------------------------------------------------------------------------- /contrib/pngminim/decoder/pngusr.dfa: -------------------------------------------------------------------------------- 1 | # pngminim/decoder/pngusr.dfa 2 | # 3 | # Copyright (c) 2010-2013 Glenn Randers-Pehrson 4 | # 5 | # This code is released under the libpng license. 6 | # For conditions of distribution and use, see the disclaimer 7 | # and license in png.h 8 | 9 | # First all the build options off: 10 | 11 | everything = off 12 | 13 | # All that is required is some read code. This example switches 14 | # on the sequential read code (see ../preader for a progressive 15 | # read example). 16 | 17 | option SEQUENTIAL_READ on 18 | 19 | # You must choose fixed or floating point arithmetic: 20 | # option FLOATING_POINT on 21 | 22 | option FIXED_POINT on 23 | 24 | # You must chose the internal fixed point implementation or to 25 | # use the system floating point. The latter is considerably 26 | # smaller (by about 1kbyte on an x86 system): 27 | # option FLOATING_ARITHMETIC on 28 | 29 | option FLOATING_ARITHMETIC off 30 | 31 | # Your program will probably need other options. The example 32 | # program here, pngm2pnm, requires the following. Take a look 33 | # at pnglibconf.h to find out the full set of what has to be 34 | # enabled to make the following work. 35 | 36 | option SETJMP on 37 | option STDIO on 38 | option READ_EXPAND on 39 | option READ_STRIP_16_TO_8 on 40 | option USER_LIMITS on 41 | -------------------------------------------------------------------------------- /contrib/pngminim/decoder/pngusr.h: -------------------------------------------------------------------------------- 1 | /* minrdpngconf.h: headers to make a minimal png-read-only library 2 | * 3 | * Copyright (c) 2007, 2010-2013 Glenn Randers-Pehrson 4 | * 5 | * This code is released under the libpng license. 6 | * For conditions of distribution and use, see the disclaimer 7 | * and license in png.h 8 | * 9 | * Derived from pngcrush.h, Copyright 1998-2007, Glenn Randers-Pehrson 10 | */ 11 | 12 | #ifndef MINRDPNGCONF_H 13 | #define MINRDPNGCONF_H 14 | 15 | /* To include pngusr.h set -DPNG_USER_CONFIG in CPPFLAGS */ 16 | 17 | /* List options to turn off features of the build that do not 18 | * affect the API (so are not recorded in pnglibconf.h) 19 | */ 20 | 21 | #define PNG_ALIGN_TYPE PNG_ALIGN_NONE 22 | 23 | #endif /* MINRDPNGCONF_H */ 24 | -------------------------------------------------------------------------------- /contrib/pngminim/encoder/README: -------------------------------------------------------------------------------- 1 | This demonstrates the use of PNG_USER_CONFIG and pngusr.h 2 | 3 | The makefile builds a minimal write-only encoder with embedded libpng 4 | and zlib. 5 | 6 | Specify the location of the zlib source (1.2.1 or later) as ZLIBSRC 7 | on the make command line. 8 | 9 | If you prefer to use the shared libraries, go to contrib/pngminus 10 | and build the pnm2png application there. 11 | -------------------------------------------------------------------------------- /contrib/pngminim/encoder/pngusr.dfa: -------------------------------------------------------------------------------- 1 | # pngminim/encoder/pngusr.dfa 2 | # 3 | # Copyright (c) 2010-2013 Glenn Randers-Pehrson 4 | # 5 | # This code is released under the libpng license. 6 | # For conditions of distribution and use, see the disclaimer 7 | # and license in png.h 8 | 9 | # First all the build options off: 10 | 11 | everything = off 12 | 13 | # Switch on the write code - this makes a minimalist encoder 14 | 15 | option WRITE on 16 | 17 | # These 2 options are required if you need to read PBM (P1 or P4) files. 18 | option WRITE_INVERT on 19 | option WRITE_PACK on 20 | 21 | # You must choose fixed or floating point arithmetic: 22 | # option FLOATING_POINT on 23 | 24 | option FIXED_POINT on 25 | 26 | # You must chose the internal fixed point implementation or to 27 | # use the system floating point. The latter is considerably 28 | # smaller (by about 1kbyte on an x86 system): 29 | # option FLOATING_ARITHMETIC on 30 | 31 | option FLOATING_ARITHMETIC off 32 | 33 | # Your program will probably need other options. The example 34 | # program here, pnm2pngm, requires the following. Take a look 35 | # at pnglibconf.h to find out the full set of what has to be 36 | # enabled to make the following work. 37 | 38 | option SETJMP on 39 | option STDIO on 40 | -------------------------------------------------------------------------------- /contrib/pngminim/encoder/pngusr.h: -------------------------------------------------------------------------------- 1 | /* minwrpngconf.h: headers to make a minimal png-write-only library 2 | * 3 | * Copyright (c) 2007, 2010-2013 Glenn Randers-Pehrson 4 | * 5 | * This code is released under the libpng license. 6 | * For conditions of distribution and use, see the disclaimer 7 | * and license in png.h 8 | * 9 | * Derived from pngcrush.h, Copyright 1998-2007, Glenn Randers-Pehrson 10 | */ 11 | 12 | #ifndef MINWRPNGCONF_H 13 | #define MINWRPNGCONF_H 14 | 15 | /* To include pngusr.h set -DPNG_USER_CONFIG in CPPFLAGS */ 16 | 17 | /* List options to turn off features of the build that do not 18 | * affect the API (so are not recorded in pnglibconf.h) 19 | */ 20 | 21 | #define PNG_ALIGN_TYPE PNG_ALIGN_NONE 22 | 23 | #endif /* MINWRPNGCONF_H */ 24 | -------------------------------------------------------------------------------- /contrib/pngminim/preader/README: -------------------------------------------------------------------------------- 1 | This demonstrates the use of PNG_USER_CONFIG and pngusr.h 2 | 3 | The makefile builds a minimal read-only progressive decoder with 4 | embedded libpng, zlib and your system's X library. 5 | 6 | Specify the location of the zlib source (1.2.1 or later) as ZLIBSRC 7 | on the make command line. 8 | 9 | Edit makefile if required, to find your X library and include files, 10 | then 11 | 12 | make ZLIBSRC=directory 13 | 14 | If you prefer to use the shared libraries, go to contrib/gregbook 15 | and build the rpng2-x application there. 16 | -------------------------------------------------------------------------------- /contrib/pngminim/preader/pngusr.dfa: -------------------------------------------------------------------------------- 1 | # pngminim/preader/pngusr.dfa 2 | # 3 | # Copyright (c) 2010-2013 Glenn Randers-Pehrson 4 | # 5 | # This code is released under the libpng license. 6 | # For conditions of distribution and use, see the disclaimer 7 | # and license in png.h 8 | 9 | # First all the build options off: 10 | 11 | everything = off 12 | 13 | # Just switch on the progressive read code 14 | 15 | option PROGRESSIVE_READ on 16 | 17 | # You may choose fixed or floating point APIs: 18 | # option FLOATING_POINT on 19 | 20 | option FIXED_POINT on 21 | 22 | # You must chose the internal fixed point implementation or to 23 | # use the system floating point. The latter is considerably 24 | # smaller (by about 1kbyte on an x86 system): 25 | 26 | option FLOATING_ARITHMETIC on 27 | # option FLOATING_ARITHMETIC off 28 | 29 | # Your program will probably need other options. The example 30 | # program here, rpng2-x, requires the following. Take a look 31 | # at pnglibconf.h to find out the full set of what has to be 32 | # enabled to make the following work. 33 | 34 | option SETJMP on 35 | option STDIO on 36 | option READ_bKGD on 37 | option READ_GAMMA on 38 | option READ_EXPAND on 39 | option READ_STRIP_16_TO_8 on 40 | option READ_GRAY_TO_RGB on 41 | -------------------------------------------------------------------------------- /contrib/pngminim/preader/pngusr.h: -------------------------------------------------------------------------------- 1 | /* minrdpngconf.h: headers to make a minimal png-read-only library 2 | * 3 | * Copyright (c) 2009, 2010-2013 Glenn Randers-Pehrson 4 | * 5 | * This code is released under the libpng license. 6 | * For conditions of distribution and use, see the disclaimer 7 | * and license in png.h 8 | * 9 | * Derived from pngcrush.h, Copyright 1998-2007, Glenn Randers-Pehrson 10 | */ 11 | 12 | #ifndef MINPRDPNGCONF_H 13 | #define MINPRDPNGCONF_H 14 | 15 | /* To include pngusr.h set -DPNG_USER_CONFIG in CPPFLAGS */ 16 | 17 | /* List options to turn off features of the build that do not 18 | * affect the API (so are not recorded in pnglibconf.h) 19 | */ 20 | 21 | #define PNG_ALIGN_TYPE PNG_ALIGN_NONE 22 | 23 | #endif /* MINPRDPNGCONF_H */ 24 | -------------------------------------------------------------------------------- /contrib/pngminus/.editorconfig: -------------------------------------------------------------------------------- 1 | # https://editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | end_of_line = unset 8 | indent_size = unset 9 | indent_style = space 10 | insert_final_newline = true 11 | max_doc_length = 79 12 | max_line_length = 79 13 | trim_trailing_whitespace = true 14 | 15 | [*.[ch]] 16 | indent_size = 2 17 | indent_style = space 18 | 19 | [CMakeLists.txt] 20 | indent_size = 4 21 | indent_style = space 22 | max_doc_length = 79 23 | max_line_length = 99 24 | 25 | [{Makefile,makevms.com}] 26 | indent_size = unset 27 | indent_style = unset 28 | max_doc_length = 79 29 | max_line_length = 99 30 | -------------------------------------------------------------------------------- /contrib/pngminus/.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled executables 2 | png2pnm 3 | png2pnm.exe 4 | png2pnm-static* 5 | pnm2png 6 | pnm2png.exe 7 | pnm2png-static* 8 | 9 | # Test artifacts 10 | *.png 11 | *.p[abgnp]m 12 | -------------------------------------------------------------------------------- /contrib/pngminus/CHANGES.txt: -------------------------------------------------------------------------------- 1 | pnm2png / png2pnm --- conversion from PBM/PGM/PPM-file to PNG-file 2 | copyright (C) 1999-2019 by Willem van Schaik 3 | 4 | version 1.0 - 1999.10.15 - First version. 5 | 1.1 - 2015.07.29 - Fix memory leaks (Glenn Randers-Pehrson) 6 | 1.2 - 2017.04.22 - Add buffer-size check 7 | 1.3 - 2017.08.24 - Fix potential overflow in buffer-size check 8 | (Glenn Randers-Pehrson) 9 | 1.4 - 2017.08.28 - Add PNGMINUS_UNUSED (Christian Hesse) 10 | 1.5 - 2018.08.05 - Fix buffer overflow in tokenizer (Cosmin Truta) 11 | 1.6 - 2018.08.05 - Improve portability and fix style (Cosmin Truta) 12 | 1.7 - 2019.01.22 - Change license to MIT (Willem van Schaik) 13 | 1.8 - 2024.01.09 - Fix, improve, modernize (Cosmin Truta) 14 | 1.9 - 2025.01.10 - Delete conditionally-compiled code (Cosmin Truta) 15 | -------------------------------------------------------------------------------- /contrib/pngminus/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2018-2025 Cosmin Truta 2 | # 3 | # This software is released under the MIT license. For conditions of 4 | # distribution and use, see the LICENSE file part of this package. 5 | 6 | cmake_minimum_required(VERSION 3.14) 7 | 8 | project(PNGMINUS C) 9 | 10 | option(PNGMINUS_USE_SYSTEM_PNG 11 | "Use the libpng build found in the system" OFF) 12 | 13 | add_executable(png2pnm png2pnm.c) 14 | add_executable(pnm2png pnm2png.c) 15 | 16 | if(PNGMINUS_USE_SYSTEM_PNG) 17 | # Use the system libpng. 18 | find_package(PNG REQUIRED) 19 | target_link_libraries(png2pnm PRIVATE PNG::PNG) 20 | target_link_libraries(pnm2png PRIVATE PNG::PNG) 21 | else() 22 | # Build and use the internal libpng. 23 | # Configure libpng for static linking, to produce single-file executables. 24 | set(PNG_STATIC ON 25 | CACHE STRING "Build the internal libpng as a static library" FORCE) 26 | set(PNG_SHARED OFF 27 | CACHE STRING "Build the internal libpng as a shared library" FORCE) 28 | set(PNG_FRAMEWORK OFF 29 | CACHE STRING "Build the internal libpng as a framework bundle" FORCE) 30 | add_subdirectory(../.. libpng) 31 | target_include_directories(png2pnm PRIVATE 32 | "$" 33 | "$" 34 | ) 35 | target_include_directories(pnm2png PRIVATE 36 | "$" 37 | "$" 38 | ) 39 | target_link_libraries(png2pnm PRIVATE png_static) 40 | target_link_libraries(pnm2png PRIVATE png_static) 41 | endif() 42 | -------------------------------------------------------------------------------- /contrib/pngminus/LICENSE.txt: -------------------------------------------------------------------------------- 1 | pnm2png / png2pnm --- conversion from PBM/PGM/PPM-file to PNG-file 2 | 3 | copyright (C) 1999-2019 by Willem van Schaik 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | The software is provided "as is", without warranty of any kind, express or 16 | implied, including but not limited to the warranties of merchantability, 17 | fitness for a particular purpose and noninfringement. In no event shall the 18 | authors or copyright holders be liable for any claim, damages or other 19 | liability, whether in an action of contract, tort or otherwise, arising from, 20 | out of or in connection with the software or the use or other dealings in the 21 | software. 22 | -------------------------------------------------------------------------------- /contrib/pngminus/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for PngMinus (png2pnm and pnm2png) 2 | # Linux / Unix 3 | 4 | #CC = cc 5 | CC = gcc 6 | LD = $(CC) 7 | 8 | RM = rm -f 9 | 10 | PNGINC = -I../.. 11 | PNGLIB_SHARED = -L../.. -lpng 12 | PNGLIB_STATIC = ../../libpng.a 13 | 14 | # Uncomment the following if you have a custom zlib build at ../../../zlib 15 | #ZINC = -I../../../zlib 16 | #ZLIB_SHARED = -L../../../zlib -lz 17 | #ZLIB_STATIC = ../../../zlib/libz.a 18 | 19 | # Use the system zlib otherwise 20 | ZLIB_SHARED = -lz 21 | ZLIB_STATIC = -lz 22 | 23 | CPPFLAGS = $(PNGINC) $(ZINC) 24 | CFLAGS = 25 | LDFLAGS = 26 | LIBS_SHARED = $(PNGLIB_SHARED) $(ZLIB_SHARED) 27 | LIBS_STATIC = $(PNGLIB_STATIC) $(ZLIB_STATIC) 28 | 29 | EXEEXT = 30 | #EXEEXT = .exe 31 | 32 | # dependencies 33 | 34 | all: png2pnm$(EXEEXT) pnm2png$(EXEEXT) png2pnm-static$(EXEEXT) pnm2png-static$(EXEEXT) 35 | 36 | png2pnm.o: png2pnm.c 37 | $(CC) -c $(CPPFLAGS) $(CFLAGS) png2pnm.c 38 | 39 | pnm2png.o: pnm2png.c 40 | $(CC) -c $(CPPFLAGS) $(CFLAGS) pnm2png.c 41 | 42 | png2pnm$(EXEEXT): png2pnm.o 43 | $(LD) $(LDFLAGS) -o png2pnm$(EXEEXT) png2pnm.o $(LIBS_SHARED) -lm 44 | 45 | pnm2png$(EXEEXT): pnm2png.o 46 | $(LD) $(LDFLAGS) -o pnm2png$(EXEEXT) pnm2png.o $(LIBS_SHARED) -lm 47 | 48 | png2pnm-static$(EXEEXT): png2pnm.o 49 | $(LD) $(LDFLAGS) -o png2pnm-static$(EXEEXT) png2pnm.o $(LIBS_STATIC) -lm 50 | 51 | pnm2png-static$(EXEEXT): pnm2png.o 52 | $(LD) $(LDFLAGS) -o pnm2png-static$(EXEEXT) pnm2png.o $(LIBS_STATIC) -lm 53 | 54 | clean: 55 | $(RM) png2pnm.o 56 | $(RM) pnm2png.o 57 | $(RM) png2pnm$(EXEEXT) 58 | $(RM) pnm2png$(EXEEXT) 59 | $(RM) png2pnm-static$(EXEEXT) 60 | $(RM) pnm2png-static$(EXEEXT) 61 | 62 | # End of makefile for png2pnm / pnm2png 63 | -------------------------------------------------------------------------------- /contrib/pngminus/test_png2pnm.bat: -------------------------------------------------------------------------------- 1 | REM -- grayscale 2 | png2pnm.exe -noraw ..\pngsuite\basn0g01.png basn0g01.pgm 3 | png2pnm.exe -noraw ..\pngsuite\basn0g02.png basn0g02.pgm 4 | png2pnm.exe -noraw ..\pngsuite\basn0g04.png basn0g04.pgm 5 | png2pnm.exe -noraw ..\pngsuite\basn0g08.png basn0g08.pgm 6 | png2pnm.exe -noraw ..\pngsuite\basn0g16.png basn0g16.pgm 7 | REM -- full-color 8 | png2pnm.exe -noraw ..\pngsuite\basn2c08.png basn2c08.ppm 9 | png2pnm.exe -noraw ..\pngsuite\basn2c16.png basn2c16.ppm 10 | REM -- paletted 11 | png2pnm.exe -noraw ..\pngsuite\basn3p01.png basn3p01.ppm 12 | png2pnm.exe -noraw ..\pngsuite\basn3p02.png basn3p02.ppm 13 | png2pnm.exe -noraw ..\pngsuite\basn3p04.png basn3p04.ppm 14 | png2pnm.exe -noraw ..\pngsuite\basn3p08.png basn3p08.ppm 15 | REM -- gray with alpha-channel 16 | png2pnm.exe -noraw ..\pngsuite\basn4a08.png basn4a08.pgm 17 | png2pnm.exe -noraw ..\pngsuite\basn4a16.png basn4a16.pgm 18 | REM -- color with alpha-channel 19 | png2pnm.exe -noraw -alpha basn6a08.pgm ..\pngsuite\basn6a08.png basn6a08.ppm 20 | png2pnm.exe -noraw -alpha basn6a16.pgm ..\pngsuite\basn6a16.png basn6a16.ppm 21 | REM -- grayscale 22 | png2pnm.exe -raw ..\pngsuite\basn0g01.png rawn0g01.pgm 23 | png2pnm.exe -raw ..\pngsuite\basn0g02.png rawn0g02.pgm 24 | png2pnm.exe -raw ..\pngsuite\basn0g04.png rawn0g04.pgm 25 | png2pnm.exe -raw ..\pngsuite\basn0g08.png rawn0g08.pgm 26 | png2pnm.exe -raw ..\pngsuite\basn0g16.png rawn0g16.pgm 27 | REM -- full-color 28 | png2pnm.exe -raw ..\pngsuite\basn2c08.png rawn2c08.ppm 29 | png2pnm.exe -raw ..\pngsuite\basn2c16.png rawn2c16.ppm 30 | REM -- paletted 31 | png2pnm.exe -raw ..\pngsuite\basn3p01.png rawn3p01.ppm 32 | png2pnm.exe -raw ..\pngsuite\basn3p02.png rawn3p02.ppm 33 | png2pnm.exe -raw ..\pngsuite\basn3p04.png rawn3p04.ppm 34 | png2pnm.exe -raw ..\pngsuite\basn3p08.png rawn3p08.ppm 35 | REM -- gray with alpha-channel 36 | png2pnm.exe -raw ..\pngsuite\basn4a08.png rawn4a08.pgm 37 | png2pnm.exe -raw ..\pngsuite\basn4a16.png rawn4a16.pgm 38 | REM -- color with alpha-channel 39 | png2pnm.exe -noraw -alpha rawn6a08.pgm ..\pngsuite\basn6a08.png rawn6a08.ppm 40 | png2pnm.exe -noraw -alpha rawn6a16.pgm ..\pngsuite\basn6a16.png rawn6a16.ppm 41 | 42 | -------------------------------------------------------------------------------- /contrib/pngminus/test_png2pnm.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # -- grayscale 3 | ./png2pnm -noraw ../pngsuite/basn0g01.png basn0g01.pgm 4 | ./png2pnm -noraw ../pngsuite/basn0g02.png basn0g02.pgm 5 | ./png2pnm -noraw ../pngsuite/basn0g04.png basn0g04.pgm 6 | ./png2pnm -noraw ../pngsuite/basn0g08.png basn0g08.pgm 7 | ./png2pnm -noraw ../pngsuite/basn0g16.png basn0g16.pgm 8 | # -- full-color 9 | ./png2pnm -noraw ../pngsuite/basn2c08.png basn2c08.ppm 10 | ./png2pnm -noraw ../pngsuite/basn2c16.png basn2c16.ppm 11 | # -- paletted 12 | ./png2pnm -noraw ../pngsuite/basn3p01.png basn3p01.ppm 13 | ./png2pnm -noraw ../pngsuite/basn3p02.png basn3p02.ppm 14 | ./png2pnm -noraw ../pngsuite/basn3p04.png basn3p04.ppm 15 | ./png2pnm -noraw ../pngsuite/basn3p08.png basn3p08.ppm 16 | # -- gray with alpha-channel 17 | ./png2pnm -noraw ../pngsuite/basn4a08.png basn4a08.pgm 18 | ./png2pnm -noraw ../pngsuite/basn4a16.png basn4a16.pgm 19 | # -- color with alpha-channel 20 | ./png2pnm -noraw -alpha basn6a08.pgm ../pngsuite/basn6a08.png basn6a08.ppm 21 | ./png2pnm -noraw -alpha basn6a16.pgm ../pngsuite/basn6a16.png basn6a16.ppm 22 | # -- grayscale 23 | ./png2pnm -raw ../pngsuite/basn0g01.png rawn0g01.pgm 24 | ./png2pnm -raw ../pngsuite/basn0g02.png rawn0g02.pgm 25 | ./png2pnm -raw ../pngsuite/basn0g04.png rawn0g04.pgm 26 | ./png2pnm -raw ../pngsuite/basn0g08.png rawn0g08.pgm 27 | ./png2pnm -raw ../pngsuite/basn0g16.png rawn0g16.pgm 28 | # -- full-color 29 | ./png2pnm -raw ../pngsuite/basn2c08.png rawn2c08.ppm 30 | ./png2pnm -raw ../pngsuite/basn2c16.png rawn2c16.ppm 31 | # -- paletted 32 | ./png2pnm -raw ../pngsuite/basn3p01.png rawn3p01.ppm 33 | ./png2pnm -raw ../pngsuite/basn3p02.png rawn3p02.ppm 34 | ./png2pnm -raw ../pngsuite/basn3p04.png rawn3p04.ppm 35 | ./png2pnm -raw ../pngsuite/basn3p08.png rawn3p08.ppm 36 | # -- gray with alpha-channel 37 | ./png2pnm -raw ../pngsuite/basn4a08.png rawn4a08.pgm 38 | ./png2pnm -raw ../pngsuite/basn4a16.png rawn4a16.pgm 39 | # -- color with alpha-channel 40 | ./png2pnm -noraw -alpha rawn6a08.pgm ../pngsuite/basn6a08.png rawn6a08.ppm 41 | ./png2pnm -noraw -alpha rawn6a16.pgm ../pngsuite/basn6a16.png rawn6a16.ppm 42 | 43 | -------------------------------------------------------------------------------- /contrib/pngminus/test_pngminus.bat: -------------------------------------------------------------------------------- 1 | make 2 | call png2pnm.bat 3 | call pnm2png.bat 4 | 5 | -------------------------------------------------------------------------------- /contrib/pngminus/test_pngminus.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | make 3 | sh png2pnm.sh 4 | sh pnm2png.sh 5 | 6 | -------------------------------------------------------------------------------- /contrib/pngminus/test_pnm2png.bat: -------------------------------------------------------------------------------- 1 | REM -- grayscale 2 | pnm2png.exe basn0g01.pgm basn0g01.png 3 | pnm2png.exe basn0g02.pgm basn0g02.png 4 | pnm2png.exe basn0g04.pgm basn0g04.png 5 | pnm2png.exe basn0g08.pgm basn0g08.png 6 | pnm2png.exe basn0g16.pgm basn0g16.png 7 | REM -- full-color 8 | pnm2png.exe basn2c08.ppm basn2c08.png 9 | pnm2png.exe basn2c16.ppm basn2c16.png 10 | REM -- paletted 11 | pnm2png.exe basn3p01.ppm basn3p01.png 12 | pnm2png.exe basn3p02.ppm basn3p02.png 13 | pnm2png.exe basn3p04.ppm basn3p04.png 14 | pnm2png.exe basn3p08.ppm basn3p08.png 15 | REM -- gray with alpha-channel 16 | pnm2png.exe -alpha basn6a08.pgm basn4a08.pgm basn4a08.png 17 | pnm2png.exe -alpha basn6a16.pgm basn4a16.pgm basn4a16.png 18 | REM -- color with alpha-channel 19 | pnm2png.exe -alpha basn6a08.pgm basn6a08.ppm basn6a08.png 20 | pnm2png.exe -alpha basn6a16.pgm basn6a16.ppm basn6a16.png 21 | REM -- grayscale 22 | pnm2png.exe rawn0g01.pgm rawn0g01.png 23 | pnm2png.exe rawn0g02.pgm rawn0g02.png 24 | pnm2png.exe rawn0g04.pgm rawn0g04.png 25 | pnm2png.exe rawn0g08.pgm rawn0g08.png 26 | pnm2png.exe rawn0g16.pgm rawn0g16.png 27 | REM -- full-color 28 | pnm2png.exe rawn2c08.ppm rawn2c08.png 29 | pnm2png.exe rawn2c16.ppm rawn2c16.png 30 | REM -- paletted 31 | pnm2png.exe rawn3p01.ppm rawn3p01.png 32 | pnm2png.exe rawn3p02.ppm rawn3p02.png 33 | pnm2png.exe rawn3p04.ppm rawn3p04.png 34 | pnm2png.exe rawn3p08.ppm rawn3p08.png 35 | REM -- gray with alpha-channel 36 | pnm2png.exe -alpha rawn6a08.pgm rawn4a08.pgm rawn4a08.png 37 | pnm2png.exe -alpha rawn6a16.pgm rawn4a16.pgm rawn4a16.png 38 | REM -- color with alpha-channel 39 | pnm2png.exe -alpha rawn6a08.pgm rawn6a08.ppm rawn6a08.png 40 | pnm2png.exe -alpha rawn6a16.pgm rawn6a16.ppm rawn6a16.png 41 | 42 | -------------------------------------------------------------------------------- /contrib/pngminus/test_pnm2png.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # -- grayscale 3 | ./pnm2png basn0g01.pgm basn0g01.png 4 | ./pnm2png basn0g02.pgm basn0g02.png 5 | ./pnm2png basn0g04.pgm basn0g04.png 6 | ./pnm2png basn0g08.pgm basn0g08.png 7 | ./pnm2png basn0g16.pgm basn0g16.png 8 | # -- full-color 9 | ./pnm2png basn2c08.ppm basn2c08.png 10 | ./pnm2png basn2c16.ppm basn2c16.png 11 | # -- paletted 12 | ./pnm2png basn3p01.ppm basn3p01.png 13 | ./pnm2png basn3p02.ppm basn3p02.png 14 | ./pnm2png basn3p04.ppm basn3p04.png 15 | ./pnm2png basn3p08.ppm basn3p08.png 16 | # -- gray with alpha-channel 17 | ./pnm2png -alpha basn6a08.pgm basn4a08.pgm basn4a08.png 18 | ./pnm2png -alpha basn6a16.pgm basn4a16.pgm basn4a16.png 19 | # -- color with alpha-channel 20 | ./pnm2png -alpha basn6a08.pgm basn6a08.ppm basn6a08.png 21 | ./pnm2png -alpha basn6a16.pgm basn6a16.ppm basn6a16.png 22 | # -- grayscale 23 | ./pnm2png rawn0g01.pgm rawn0g01.png 24 | ./pnm2png rawn0g02.pgm rawn0g02.png 25 | ./pnm2png rawn0g04.pgm rawn0g04.png 26 | ./pnm2png rawn0g08.pgm rawn0g08.png 27 | ./pnm2png rawn0g16.pgm rawn0g16.png 28 | # -- full-color 29 | ./pnm2png rawn2c08.ppm rawn2c08.png 30 | ./pnm2png rawn2c16.ppm rawn2c16.png 31 | # -- paletted 32 | ./pnm2png rawn3p01.ppm rawn3p01.png 33 | ./pnm2png rawn3p02.ppm rawn3p02.png 34 | ./pnm2png rawn3p04.ppm rawn3p04.png 35 | ./pnm2png rawn3p08.ppm rawn3p08.png 36 | # -- gray with alpha-channel 37 | ./pnm2png -alpha rawn6a08.pgm rawn4a08.pgm rawn4a08.png 38 | ./pnm2png -alpha rawn6a16.pgm rawn4a16.pgm rawn4a16.png 39 | # -- color with alpha-channel 40 | ./pnm2png -alpha rawn6a08.pgm rawn6a08.ppm rawn6a08.png 41 | ./pnm2png -alpha rawn6a16.pgm rawn6a16.ppm rawn6a16.png 42 | 43 | -------------------------------------------------------------------------------- /contrib/pngsuite/bad_interlace_conversions.txt: -------------------------------------------------------------------------------- 1 | basn0g01.png 2 | basn0g02.png 3 | basn0g04.png 4 | basn3p01.png 5 | basn3p02.png 6 | basn3p04.png 7 | ftbbn0g01.png 8 | ftbbn0g02.png 9 | ftbbn0g04.png 10 | -------------------------------------------------------------------------------- /contrib/pngsuite/basn0g01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/basn0g01.png -------------------------------------------------------------------------------- /contrib/pngsuite/basn0g02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/basn0g02.png -------------------------------------------------------------------------------- /contrib/pngsuite/basn0g04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/basn0g04.png -------------------------------------------------------------------------------- /contrib/pngsuite/basn0g08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/basn0g08.png -------------------------------------------------------------------------------- /contrib/pngsuite/basn0g16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/basn0g16.png -------------------------------------------------------------------------------- /contrib/pngsuite/basn2c08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/basn2c08.png -------------------------------------------------------------------------------- /contrib/pngsuite/basn2c16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/basn2c16.png -------------------------------------------------------------------------------- /contrib/pngsuite/basn3p01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/basn3p01.png -------------------------------------------------------------------------------- /contrib/pngsuite/basn3p02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/basn3p02.png -------------------------------------------------------------------------------- /contrib/pngsuite/basn3p04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/basn3p04.png -------------------------------------------------------------------------------- /contrib/pngsuite/basn3p08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/basn3p08.png -------------------------------------------------------------------------------- /contrib/pngsuite/basn4a08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/basn4a08.png -------------------------------------------------------------------------------- /contrib/pngsuite/basn4a16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/basn4a16.png -------------------------------------------------------------------------------- /contrib/pngsuite/basn6a08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/basn6a08.png -------------------------------------------------------------------------------- /contrib/pngsuite/basn6a16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/basn6a16.png -------------------------------------------------------------------------------- /contrib/pngsuite/ftbbn0g01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/ftbbn0g01.png -------------------------------------------------------------------------------- /contrib/pngsuite/ftbbn0g02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/ftbbn0g02.png -------------------------------------------------------------------------------- /contrib/pngsuite/ftbbn0g04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/ftbbn0g04.png -------------------------------------------------------------------------------- /contrib/pngsuite/ftbbn2c16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/ftbbn2c16.png -------------------------------------------------------------------------------- /contrib/pngsuite/ftbbn3p08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/ftbbn3p08.png -------------------------------------------------------------------------------- /contrib/pngsuite/ftbgn2c16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/ftbgn2c16.png -------------------------------------------------------------------------------- /contrib/pngsuite/ftbgn3p08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/ftbgn3p08.png -------------------------------------------------------------------------------- /contrib/pngsuite/ftbrn2c08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/ftbrn2c08.png -------------------------------------------------------------------------------- /contrib/pngsuite/ftbwn0g16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/ftbwn0g16.png -------------------------------------------------------------------------------- /contrib/pngsuite/ftbwn3p08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/ftbwn3p08.png -------------------------------------------------------------------------------- /contrib/pngsuite/ftbyn3p08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/ftbyn3p08.png -------------------------------------------------------------------------------- /contrib/pngsuite/ftp0n0g08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/ftp0n0g08.png -------------------------------------------------------------------------------- /contrib/pngsuite/ftp0n2c08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/ftp0n2c08.png -------------------------------------------------------------------------------- /contrib/pngsuite/ftp0n3p08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/ftp0n3p08.png -------------------------------------------------------------------------------- /contrib/pngsuite/ftp1n3p08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/ftp1n3p08.png -------------------------------------------------------------------------------- /contrib/pngsuite/ibasn0g08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/ibasn0g08.png -------------------------------------------------------------------------------- /contrib/pngsuite/ibasn0g16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/ibasn0g16.png -------------------------------------------------------------------------------- /contrib/pngsuite/ibasn2c08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/ibasn2c08.png -------------------------------------------------------------------------------- /contrib/pngsuite/ibasn2c16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/ibasn2c16.png -------------------------------------------------------------------------------- /contrib/pngsuite/ibasn3p08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/ibasn3p08.png -------------------------------------------------------------------------------- /contrib/pngsuite/ibasn4a08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/ibasn4a08.png -------------------------------------------------------------------------------- /contrib/pngsuite/ibasn4a16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/ibasn4a16.png -------------------------------------------------------------------------------- /contrib/pngsuite/ibasn6a08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/ibasn6a08.png -------------------------------------------------------------------------------- /contrib/pngsuite/ibasn6a16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/ibasn6a16.png -------------------------------------------------------------------------------- /contrib/pngsuite/iftbbn2c16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/iftbbn2c16.png -------------------------------------------------------------------------------- /contrib/pngsuite/iftbbn3p08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/iftbbn3p08.png -------------------------------------------------------------------------------- /contrib/pngsuite/iftbgn2c16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/iftbgn2c16.png -------------------------------------------------------------------------------- /contrib/pngsuite/iftbgn3p08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/iftbgn3p08.png -------------------------------------------------------------------------------- /contrib/pngsuite/iftbrn2c08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/iftbrn2c08.png -------------------------------------------------------------------------------- /contrib/pngsuite/iftbwn0g16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/iftbwn0g16.png -------------------------------------------------------------------------------- /contrib/pngsuite/iftbwn3p08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/iftbwn3p08.png -------------------------------------------------------------------------------- /contrib/pngsuite/iftbyn3p08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/iftbyn3p08.png -------------------------------------------------------------------------------- /contrib/pngsuite/iftp0n0g08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/iftp0n0g08.png -------------------------------------------------------------------------------- /contrib/pngsuite/iftp0n2c08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/iftp0n2c08.png -------------------------------------------------------------------------------- /contrib/pngsuite/iftp0n3p08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/iftp0n3p08.png -------------------------------------------------------------------------------- /contrib/pngsuite/iftp1n3p08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/iftp1n3p08.png -------------------------------------------------------------------------------- /contrib/pngsuite/interlaced/README: -------------------------------------------------------------------------------- 1 | These images fail the "pngimage-quick" and "pngimage-full" tests. 2 | -------------------------------------------------------------------------------- /contrib/pngsuite/interlaced/ibasn0g01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/interlaced/ibasn0g01.png -------------------------------------------------------------------------------- /contrib/pngsuite/interlaced/ibasn0g02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/interlaced/ibasn0g02.png -------------------------------------------------------------------------------- /contrib/pngsuite/interlaced/ibasn0g04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/interlaced/ibasn0g04.png -------------------------------------------------------------------------------- /contrib/pngsuite/interlaced/ibasn3p01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/interlaced/ibasn3p01.png -------------------------------------------------------------------------------- /contrib/pngsuite/interlaced/ibasn3p02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/interlaced/ibasn3p02.png -------------------------------------------------------------------------------- /contrib/pngsuite/interlaced/ibasn3p04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/interlaced/ibasn3p04.png -------------------------------------------------------------------------------- /contrib/pngsuite/interlaced/iftbbn0g01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/interlaced/iftbbn0g01.png -------------------------------------------------------------------------------- /contrib/pngsuite/interlaced/iftbbn0g02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/interlaced/iftbbn0g02.png -------------------------------------------------------------------------------- /contrib/pngsuite/interlaced/iftbbn0g04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/pngsuite/interlaced/iftbbn0g04.png -------------------------------------------------------------------------------- /contrib/powerpc-vsx/linux.c: -------------------------------------------------------------------------------- 1 | /* contrib/powerpc-vsx/linux.c 2 | * 3 | * Copyright (c) 2017 Glenn Randers-Pehrson 4 | * Written by Vadim Barkov, 2017. 5 | * 6 | * This code is released under the libpng license. 7 | * For conditions of distribution and use, see the disclaimer 8 | * and license in png.h 9 | * 10 | * STATUS: TESTED 11 | * BUG REPORTS: png-mng-implement@sourceforge.net 12 | * 13 | * png_have_vsx implemented for Linux by reading the widely available 14 | * pseudo-file /proc/cpuinfo. 15 | * 16 | * This code is strict ANSI-C and is probably moderately portable; it does 17 | * however use and it assumes that /proc/cpuinfo is never localized. 18 | */ 19 | 20 | #include 21 | #include 22 | #include 23 | #include "png.h" 24 | 25 | #ifndef MAXLINE 26 | # define MAXLINE 1024 27 | #endif 28 | 29 | static int 30 | png_have_vsx(png_structp png_ptr) 31 | { 32 | FILE *f; 33 | 34 | const char *string = "altivec supported"; 35 | char input[MAXLINE]; 36 | char *token = NULL; 37 | 38 | PNG_UNUSED(png_ptr) 39 | 40 | f = fopen("/proc/cpuinfo", "r"); 41 | if (f != NULL) 42 | { 43 | memset(input,0,MAXLINE); 44 | while(fgets(input,MAXLINE,f) != NULL) 45 | { 46 | token = strstr(input,string); 47 | if(token != NULL) 48 | return 1; 49 | } 50 | } 51 | #ifdef PNG_WARNINGS_SUPPORTED 52 | else 53 | png_warning(png_ptr, "/proc/cpuinfo open failed"); 54 | #endif 55 | return 0; 56 | } 57 | -------------------------------------------------------------------------------- /contrib/powerpc-vsx/linux_aux.c: -------------------------------------------------------------------------------- 1 | /* contrib/powerpc-vsx/linux_aux.c 2 | * 3 | * Copyright (c) 2017 Glenn Randers-Pehrson 4 | * Written by Vadim Barkov, 2017. 5 | * 6 | * This code is released under the libpng license. 7 | * For conditions of distribution and use, see the disclaimer 8 | * and license in png.h 9 | * 10 | * STATUS: TESTED 11 | * BUG REPORTS: png-mng-implement@sourceforge.net 12 | * 13 | * png_have_vsx implemented for Linux by using the auxiliary vector mechanism. 14 | * 15 | * This code is strict ANSI-C and is probably moderately portable; it does 16 | * however use and it assumes that /proc/cpuinfo is never localized. 17 | */ 18 | 19 | #include "sys/auxv.h" 20 | #include "png.h" 21 | 22 | static int 23 | png_have_vsx(png_structp png_ptr) 24 | { 25 | unsigned long auxv = getauxval(AT_HWCAP); 26 | 27 | PNG_UNUSED(png_ptr) 28 | 29 | if(auxv & (PPC_FEATURE_HAS_ALTIVEC|PPC_FEATURE_HAS_VSX)) 30 | return 1; 31 | else 32 | return 0; 33 | } 34 | -------------------------------------------------------------------------------- /contrib/riscv-rvv/linux.c: -------------------------------------------------------------------------------- 1 | /* contrib/riscv-rvv/linux.c 2 | * 3 | * Copyright (c) 2023 Google LLC 4 | * Written by Dragoș Tiselice , May 2023. 5 | * 6 | * This code is released under the libpng license. 7 | * For conditions of distribution and use, see the disclaimer 8 | * and license in png.h 9 | * 10 | * SEE contrib/riscv-rvv/README before reporting bugs 11 | * 12 | * STATUS: SUPPORTED 13 | * BUG REPORTS: png-mng-implement@sourceforge.net 14 | * 15 | * png_have_rvv implemented for Linux by looking for COMPAT_HWCAP_ISA_V 16 | * via hardware capabilites API. 17 | * 18 | * This code is strict ANSI-C and is probably moderately portable; it does 19 | * however use and it assumes that /proc/cpuinfo is never localized. 20 | */ 21 | 22 | #if defined(__linux__) 23 | #include 24 | #include 25 | #endif 26 | 27 | static int 28 | png_have_rvv(png_structp png_ptr) { 29 | #if defined(__linux__) 30 | return getauxval (AT_HWCAP) & COMPAT_HWCAP_ISA_V ? 1 : 0; 31 | #else 32 | #pragma message( \ 33 | "warning: RISC-V Vector not supported for this platform") 34 | return 0; 35 | #endif 36 | } 37 | -------------------------------------------------------------------------------- /contrib/testpngs/badpal/regression-palette-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/badpal/regression-palette-8.png -------------------------------------------------------------------------------- /contrib/testpngs/badpal/small-palette-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/badpal/small-palette-1.png -------------------------------------------------------------------------------- /contrib/testpngs/badpal/small-palette-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/badpal/small-palette-2.png -------------------------------------------------------------------------------- /contrib/testpngs/badpal/small-palette-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/badpal/small-palette-4.png -------------------------------------------------------------------------------- /contrib/testpngs/badpal/small-palette-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/badpal/small-palette-8.png -------------------------------------------------------------------------------- /contrib/testpngs/badpal/test-palette-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/badpal/test-palette-1.png -------------------------------------------------------------------------------- /contrib/testpngs/badpal/test-palette-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/badpal/test-palette-2.png -------------------------------------------------------------------------------- /contrib/testpngs/badpal/test-palette-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/badpal/test-palette-4.png -------------------------------------------------------------------------------- /contrib/testpngs/badpal/test-palette-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/badpal/test-palette-8.png -------------------------------------------------------------------------------- /contrib/testpngs/crashers/bad_iCCP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/crashers/bad_iCCP.png -------------------------------------------------------------------------------- /contrib/testpngs/crashers/badadler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/crashers/badadler.png -------------------------------------------------------------------------------- /contrib/testpngs/crashers/badcrc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/crashers/badcrc.png -------------------------------------------------------------------------------- /contrib/testpngs/crashers/empty_ancillary_chunks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/crashers/empty_ancillary_chunks.png -------------------------------------------------------------------------------- /contrib/testpngs/crashers/huge_IDAT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/crashers/huge_IDAT.png -------------------------------------------------------------------------------- /contrib/testpngs/crashers/huge_bKGD_chunk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/crashers/huge_bKGD_chunk.png -------------------------------------------------------------------------------- /contrib/testpngs/crashers/huge_cHRM_chunk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/crashers/huge_cHRM_chunk.png -------------------------------------------------------------------------------- /contrib/testpngs/crashers/huge_eXIf_chunk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/crashers/huge_eXIf_chunk.png -------------------------------------------------------------------------------- /contrib/testpngs/crashers/huge_gAMA_chunk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/crashers/huge_gAMA_chunk.png -------------------------------------------------------------------------------- /contrib/testpngs/crashers/huge_hIST_chunk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/crashers/huge_hIST_chunk.png -------------------------------------------------------------------------------- /contrib/testpngs/crashers/huge_iCCP_chunk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/crashers/huge_iCCP_chunk.png -------------------------------------------------------------------------------- /contrib/testpngs/crashers/huge_iTXt_chunk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/crashers/huge_iTXt_chunk.png -------------------------------------------------------------------------------- /contrib/testpngs/crashers/huge_juNK_unsafe_to_copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/crashers/huge_juNK_unsafe_to_copy.png -------------------------------------------------------------------------------- /contrib/testpngs/crashers/huge_juNk_safe_to_copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/crashers/huge_juNk_safe_to_copy.png -------------------------------------------------------------------------------- /contrib/testpngs/crashers/huge_pCAL_chunk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/crashers/huge_pCAL_chunk.png -------------------------------------------------------------------------------- /contrib/testpngs/crashers/huge_pHYs_chunk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/crashers/huge_pHYs_chunk.png -------------------------------------------------------------------------------- /contrib/testpngs/crashers/huge_sCAL_chunk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/crashers/huge_sCAL_chunk.png -------------------------------------------------------------------------------- /contrib/testpngs/crashers/huge_sPLT_chunk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/crashers/huge_sPLT_chunk.png -------------------------------------------------------------------------------- /contrib/testpngs/crashers/huge_sRGB_chunk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/crashers/huge_sRGB_chunk.png -------------------------------------------------------------------------------- /contrib/testpngs/crashers/huge_sTER_chunk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/crashers/huge_sTER_chunk.png -------------------------------------------------------------------------------- /contrib/testpngs/crashers/huge_tEXt_chunk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/crashers/huge_tEXt_chunk.png -------------------------------------------------------------------------------- /contrib/testpngs/crashers/huge_tIME_chunk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/crashers/huge_tIME_chunk.png -------------------------------------------------------------------------------- /contrib/testpngs/crashers/huge_zTXt_chunk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/crashers/huge_zTXt_chunk.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-1-1.8-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-1-1.8-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-1-1.8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-1-1.8.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-1-linear-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-1-linear-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-1-linear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-1-linear.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-1-sRGB-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-1-sRGB-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-1-sRGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-1-sRGB.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-1-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-1-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-1.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-16-1.8-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-16-1.8-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-16-1.8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-16-1.8.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-16-linear-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-16-linear-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-16-linear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-16-linear.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-16-sRGB-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-16-sRGB-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-16-sRGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-16-sRGB.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-16-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-16-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-16.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-2-1.8-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-2-1.8-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-2-1.8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-2-1.8.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-2-linear-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-2-linear-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-2-linear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-2-linear.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-2-sRGB-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-2-sRGB-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-2-sRGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-2-sRGB.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-2-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-2-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-2.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-4-1.8-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-4-1.8-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-4-1.8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-4-1.8.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-4-linear-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-4-linear-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-4-linear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-4-linear.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-4-sRGB-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-4-sRGB-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-4-sRGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-4-sRGB.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-4-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-4-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-4.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-8-1.8-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-8-1.8-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-8-1.8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-8-1.8.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-8-linear-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-8-linear-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-8-linear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-8-linear.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-8-sRGB-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-8-sRGB-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-8-sRGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-8-sRGB.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-8-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-8-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-8.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-alpha-16-1.8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-alpha-16-1.8.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-alpha-16-linear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-alpha-16-linear.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-alpha-16-sRGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-alpha-16-sRGB.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-alpha-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-alpha-16.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-alpha-8-1.8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-alpha-8-1.8.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-alpha-8-linear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-alpha-8-linear.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-alpha-8-sRGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-alpha-8-sRGB.png -------------------------------------------------------------------------------- /contrib/testpngs/gray-alpha-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/gray-alpha-8.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-1-1.8-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-1-1.8-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-1-1.8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-1-1.8.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-1-linear-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-1-linear-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-1-linear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-1-linear.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-1-sRGB-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-1-sRGB-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-1-sRGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-1-sRGB.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-1-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-1-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-1.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-2-1.8-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-2-1.8-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-2-1.8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-2-1.8.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-2-linear-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-2-linear-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-2-linear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-2-linear.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-2-sRGB-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-2-sRGB-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-2-sRGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-2-sRGB.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-2-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-2-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-2.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-4-1.8-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-4-1.8-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-4-1.8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-4-1.8.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-4-linear-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-4-linear-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-4-linear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-4-linear.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-4-sRGB-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-4-sRGB-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-4-sRGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-4-sRGB.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-4-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-4-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-4.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-8-1.8-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-8-1.8-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-8-1.8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-8-1.8.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-8-linear-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-8-linear-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-8-linear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-8-linear.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-8-sRGB-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-8-sRGB-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-8-sRGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-8-sRGB.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-8-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-8-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/palette-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/palette-8.png -------------------------------------------------------------------------------- /contrib/testpngs/png-3/cicp-display-p3_reencoded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/png-3/cicp-display-p3_reencoded.png -------------------------------------------------------------------------------- /contrib/testpngs/rgb-16-1.8-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/rgb-16-1.8-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/rgb-16-1.8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/rgb-16-1.8.png -------------------------------------------------------------------------------- /contrib/testpngs/rgb-16-linear-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/rgb-16-linear-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/rgb-16-linear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/rgb-16-linear.png -------------------------------------------------------------------------------- /contrib/testpngs/rgb-16-sRGB-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/rgb-16-sRGB-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/rgb-16-sRGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/rgb-16-sRGB.png -------------------------------------------------------------------------------- /contrib/testpngs/rgb-16-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/rgb-16-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/rgb-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/rgb-16.png -------------------------------------------------------------------------------- /contrib/testpngs/rgb-8-1.8-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/rgb-8-1.8-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/rgb-8-1.8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/rgb-8-1.8.png -------------------------------------------------------------------------------- /contrib/testpngs/rgb-8-linear-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/rgb-8-linear-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/rgb-8-linear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/rgb-8-linear.png -------------------------------------------------------------------------------- /contrib/testpngs/rgb-8-sRGB-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/rgb-8-sRGB-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/rgb-8-sRGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/rgb-8-sRGB.png -------------------------------------------------------------------------------- /contrib/testpngs/rgb-8-tRNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/rgb-8-tRNS.png -------------------------------------------------------------------------------- /contrib/testpngs/rgb-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/rgb-8.png -------------------------------------------------------------------------------- /contrib/testpngs/rgb-alpha-16-1.8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/rgb-alpha-16-1.8.png -------------------------------------------------------------------------------- /contrib/testpngs/rgb-alpha-16-linear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/rgb-alpha-16-linear.png -------------------------------------------------------------------------------- /contrib/testpngs/rgb-alpha-16-sRGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/rgb-alpha-16-sRGB.png -------------------------------------------------------------------------------- /contrib/testpngs/rgb-alpha-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/rgb-alpha-16.png -------------------------------------------------------------------------------- /contrib/testpngs/rgb-alpha-8-1.8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/rgb-alpha-8-1.8.png -------------------------------------------------------------------------------- /contrib/testpngs/rgb-alpha-8-linear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/rgb-alpha-8-linear.png -------------------------------------------------------------------------------- /contrib/testpngs/rgb-alpha-8-sRGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/rgb-alpha-8-sRGB.png -------------------------------------------------------------------------------- /contrib/testpngs/rgb-alpha-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/testpngs/rgb-alpha-8.png -------------------------------------------------------------------------------- /contrib/tools/README.txt: -------------------------------------------------------------------------------- 1 | This directory (contrib/tools) contains tools used by the authors of libpng. 2 | 3 | Code and data placed in this directory is not required to build libpng, 4 | however the code in this directory has been used to generate data or code in 5 | the body of the libpng source. The source code identifies where this has 6 | been done. Code in this directory may not compile on all operating systems 7 | that libpng supports. 8 | 9 | NO COPYRIGHT RIGHTS ARE CLAIMED TO ANY OF THE FILES IN THIS DIRECTORY. 10 | 11 | To the extent possible under law, the authors have waived all copyright and 12 | related or neighboring rights to this work. This work is published from: 13 | United States. 14 | 15 | The files may be used freely in any way. 16 | 17 | The source code and comments in this directory are the original work of the 18 | people named below. No other person or organization has made contributions to 19 | the work in this directory. 20 | 21 | ORIGINAL AUTHORS 22 | The following people have contributed to the code in this directory. None 23 | of the people below claim any rights with regard to the contents of this 24 | directory. 25 | 26 | John Bowler 27 | Glenn Randers-Pehrson 28 | -------------------------------------------------------------------------------- /contrib/tools/sRGB.h: -------------------------------------------------------------------------------- 1 | /* sRGB.h 2 | * 3 | * COPYRIGHT: Written by John Cunningham Bowler, 2013. 4 | * To the extent possible under law, the author has waived all copyright and 5 | * related or neighboring rights to this work. This work is published from: 6 | * United States. 7 | * 8 | * Utility file; not actually a header, this contains definitions of sRGB 9 | * calculation functions for inclusion in those test programs that need them. 10 | * 11 | * All routines take and return a floating point value in the range 12 | * 0 to 1.0, doing a calculation according to the sRGB specification 13 | * (in fact the source of the numbers is the wikipedia article at 14 | * https://en.wikipedia.org/wiki/SRGB). 15 | */ 16 | 17 | static double 18 | sRGB_from_linear(double l) 19 | { 20 | if (l <= 0.0031308) 21 | l *= 12.92; 22 | 23 | else 24 | l = 1.055 * pow(l, 1/2.4) - 0.055; 25 | 26 | return l; 27 | } 28 | 29 | static double 30 | linear_from_sRGB(double s) 31 | { 32 | if (s <= 0.04045) 33 | return s / 12.92; 34 | 35 | else 36 | return pow((s+0.055)/1.055, 2.4); 37 | } 38 | 39 | static double 40 | YfromRGB(double r, double g, double b) 41 | { 42 | /* Use the sRGB (rounded) coefficients for Rlinear, Glinear, Blinear to get 43 | * the CIE Y value (also linear). 44 | */ 45 | return 0.2126 * r + 0.7152 * g + 0.0722 * b; 46 | } 47 | -------------------------------------------------------------------------------- /contrib/visupng/.editorconfig: -------------------------------------------------------------------------------- 1 | # https://editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | end_of_line = unset 8 | indent_size = 4 9 | indent_style = space 10 | insert_final_newline = true 11 | max_doc_length = 80 12 | max_line_length = 100 13 | trim_trailing_whitespace = true 14 | 15 | [*.rc] 16 | end_of_line = crlf 17 | trim_trailing_whitespace = unset 18 | 19 | [*.ds[pw]] 20 | end_of_line = crlf 21 | max_doc_length = unset 22 | max_line_length = unset 23 | trim_trailing_whitespace = unset 24 | -------------------------------------------------------------------------------- /contrib/visupng/PngFile.h: -------------------------------------------------------------------------------- 1 | /*------------------------------------------*/ 2 | /* PNGFILE.H -- Header File for pngfile.c*/ 3 | /*------------------------------------------*/ 4 | 5 | /* Copyright 2000, Willem van Schaik.*/ 6 | 7 | /* This code is released under the libpng license.*/ 8 | /* For conditions of distribution and use, see the disclaimer*/ 9 | /* and license in png.h*/ 10 | 11 | #include 12 | #include 13 | #include 14 | #include 15 | 16 | void PngFileInitialize (HWND hwnd) ; 17 | BOOL PngFileOpenDlg (HWND hwnd, PTSTR pstrFileName, PTSTR pstrTitleName) ; 18 | BOOL PngFileSaveDlg (HWND hwnd, PTSTR pstrFileName, PTSTR pstrTitleName) ; 19 | 20 | BOOL PngLoadImage (PTSTR pstrFileName, png_byte **ppbImageData, 21 | int *piWidth, int *piHeight, int *piChannels, png_color *pBkgColor); 22 | BOOL PngSaveImage (PTSTR pstrFileName, png_byte *pDiData, 23 | int iWidth, int iHeight, png_color BkgColor); 24 | 25 | #ifndef PNG_STDIO_SUPPORTED 26 | static void png_read_data(png_structp png_ptr, png_bytep data, size_t length); 27 | static void png_write_data(png_structp png_ptr, png_bytep data, size_t length); 28 | static void png_flush(png_structp png_ptr); 29 | #endif 30 | 31 | -------------------------------------------------------------------------------- /contrib/visupng/VisualPng.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "VisualPng"=.\VisualPng.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /contrib/visupng/VisualPng.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/visupng/VisualPng.ico -------------------------------------------------------------------------------- /contrib/visupng/VisualPng.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/contrib/visupng/VisualPng.png -------------------------------------------------------------------------------- /contrib/visupng/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Developer Studio generated include file. 3 | // Used by VisualPng.rc 4 | // 5 | #define IDM_FILE_OPEN 40001 6 | #define IDM_FILE_SAVE 40002 7 | #define IDM_FILE_NEXT 40003 8 | #define IDM_FILE_PREVIOUS 40004 9 | #define IDM_FILE_EXIT 40005 10 | #define IDM_OPTIONS_BACKGROUND 40006 11 | #define IDM_OPTIONS_STRETCH 40007 12 | #define IDM_HELP_ABOUT 40008 13 | 14 | // Next default values for new objects 15 | // 16 | #ifdef APSTUDIO_INVOKED 17 | #ifndef APSTUDIO_READONLY_SYMBOLS 18 | #define _APS_NEXT_RESOURCE_VALUE 113 19 | #define _APS_NEXT_COMMAND_VALUE 40009 20 | #define _APS_NEXT_CONTROL_VALUE 1001 21 | #define _APS_NEXT_SYMED_VALUE 101 22 | #endif 23 | #endif 24 | -------------------------------------------------------------------------------- /intel/intel_init.c: -------------------------------------------------------------------------------- 1 | /* intel_init.c - SSE2 optimized filter functions 2 | * 3 | * Copyright (c) 2018 Cosmin Truta 4 | * Copyright (c) 2016-2017 Glenn Randers-Pehrson 5 | * Written by Mike Klein and Matt Sarett, Google, Inc. 6 | * Derived from arm/arm_init.c 7 | * 8 | * This code is released under the libpng license. 9 | * For conditions of distribution and use, see the disclaimer 10 | * and license in png.h 11 | */ 12 | 13 | #include "../pngpriv.h" 14 | 15 | #ifdef PNG_READ_SUPPORTED 16 | #if PNG_INTEL_SSE_IMPLEMENTATION > 0 17 | 18 | void 19 | png_init_filter_functions_sse2(png_structp pp, unsigned int bpp) 20 | { 21 | /* The techniques used to implement each of these filters in SSE operate on 22 | * one pixel at a time. 23 | * So they generally speed up 3bpp images about 3x, 4bpp images about 4x. 24 | * They can scale up to 6 and 8 bpp images and down to 2 bpp images, 25 | * but they'd not likely have any benefit for 1bpp images. 26 | * Most of these can be implemented using only MMX and 64-bit registers, 27 | * but they end up a bit slower than using the equally-ubiquitous SSE2. 28 | */ 29 | png_debug(1, "in png_init_filter_functions_sse2"); 30 | if (bpp == 3) 31 | { 32 | pp->read_filter[PNG_FILTER_VALUE_SUB-1] = png_read_filter_row_sub3_sse2; 33 | pp->read_filter[PNG_FILTER_VALUE_AVG-1] = png_read_filter_row_avg3_sse2; 34 | pp->read_filter[PNG_FILTER_VALUE_PAETH-1] = 35 | png_read_filter_row_paeth3_sse2; 36 | } 37 | else if (bpp == 4) 38 | { 39 | pp->read_filter[PNG_FILTER_VALUE_SUB-1] = png_read_filter_row_sub4_sse2; 40 | pp->read_filter[PNG_FILTER_VALUE_AVG-1] = png_read_filter_row_avg4_sse2; 41 | pp->read_filter[PNG_FILTER_VALUE_PAETH-1] = 42 | png_read_filter_row_paeth4_sse2; 43 | } 44 | 45 | /* No need optimize PNG_FILTER_VALUE_UP. The compiler should 46 | * autovectorize. 47 | */ 48 | } 49 | 50 | #endif /* PNG_INTEL_SSE_IMPLEMENTATION > 0 */ 51 | #endif /* PNG_READ_SUPPORTED */ 52 | -------------------------------------------------------------------------------- /libpng.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | includedir=@includedir@/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@ 5 | 6 | Name: libpng 7 | Description: Loads and saves PNG files 8 | Version: @PNGLIB_VERSION@ 9 | Requires.private: zlib 10 | Libs: -L${libdir} -lpng@PNGLIB_MAJOR@@PNGLIB_MINOR@ 11 | Libs.private: @LIBS@ 12 | Cflags: -I${includedir} 13 | -------------------------------------------------------------------------------- /libpngpf.3: -------------------------------------------------------------------------------- 1 | .TH LIBPNGPF 3 "May 1, 2025" 2 | .SH NAME 3 | libpng \- Portable Network Graphics (PNG) Reference Library 1.6.49.git 4 | 5 | .SH SYNOPSIS 6 | \fB#include "pngpriv.h"\fP 7 | 8 | .SH DESCRIPTION 9 | As of libpng version 1.5.1, this manual is no longer maintained. The private 10 | function prototypes, declared in private header files, should not be accessed 11 | by applications. 12 | 13 | .SH "SEE ALSO" 14 | .BR "libpng"(3) 15 | 16 | .SH AUTHORS 17 | Cosmin Truta, Glenn Randers-Pehrson 18 | -------------------------------------------------------------------------------- /loongarch/.editorconfig: -------------------------------------------------------------------------------- 1 | # https://editorconfig.org 2 | 3 | root = false 4 | 5 | # FIXME 6 | [*.[ch]] 7 | max_doc_length = unset 8 | max_line_length = unset 9 | -------------------------------------------------------------------------------- /mips/.editorconfig: -------------------------------------------------------------------------------- 1 | # https://editorconfig.org 2 | 3 | root = false 4 | 5 | # FIXME 6 | [*.[ch]] 7 | max_doc_length = unset 8 | max_line_length = unset 9 | -------------------------------------------------------------------------------- /pngbar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/pngbar.jpg -------------------------------------------------------------------------------- /pngbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/pngbar.png -------------------------------------------------------------------------------- /pngnow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/pngnow.png -------------------------------------------------------------------------------- /pngtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnggroup/libpng/3bca02e274eb81d238099cc45a5b8fca4596a09c/pngtest.png -------------------------------------------------------------------------------- /pngusr.dfa: -------------------------------------------------------------------------------- 1 | # pngusr.dfa 2 | # 3 | # Build time configuration of libpng 4 | # 5 | # Enter build configuration options in this file 6 | # 7 | # Security settings: by default these limits are unset, you can change them 8 | # here by entering the appropriate values as #defines preceded by '@' (to cause, 9 | # them to be passed through to the build of pnglibconf.h), for example: 10 | # 11 | # @# define PNG_USER_WIDTH_MAX 65535 12 | # @# define PNG_USER_HEIGHT_MAX 65535 13 | # @# define PNG_USER_CHUNK_CACHE_MAX 256 14 | # @# define PNG_USER_CHUNK_MALLOC_MAX 640000 15 | -------------------------------------------------------------------------------- /powerpc/.editorconfig: -------------------------------------------------------------------------------- 1 | # https://editorconfig.org 2 | 3 | root = false 4 | 5 | # FIXME 6 | [*.[ch]] 7 | max_doc_length = unset 8 | max_line_length = unset 9 | -------------------------------------------------------------------------------- /projects/.editorconfig: -------------------------------------------------------------------------------- 1 | # https://editorconfig.org 2 | 3 | root = true 4 | -------------------------------------------------------------------------------- /projects/owatcom/libpng.wpj: -------------------------------------------------------------------------------- 1 | 40 2 | projectIdent 3 | 0 4 | VpeMain 5 | 1 6 | WRect 7 | 256 8 | 0 9 | 8960 10 | 9294 11 | 2 12 | MProject 13 | 3 14 | MCommand 15 | 322 16 | # Locations of zlib and (if required) awk (change as required:) 17 | set zlib=..\..\..\zlib 18 | set awk= 19 | # 20 | @if not exist pngconfig.dfa $(MAKE) $(__MAKEOPTS__) -f pngconfig.mak defaults 21 | @if exist config.inf type config.inf 22 | @echo Checking for the libpng configuration file pnglibconf.h 23 | $(MAKE) $(__MAKEOPTS__) -f pngconfig.mak 24 | 4 25 | MCommand 26 | 19 27 | @type pngconfig.inf 28 | 4 29 | 5 30 | WFileName 31 | 10 32 | libpng.tgt 33 | 6 34 | WFileName 35 | 11 36 | pngtest.tgt 37 | 7 38 | WFileName 39 | 12 40 | pngvalid.tgt 41 | 8 42 | WFileName 43 | 12 44 | pngstest.tgt 45 | 9 46 | WVList 47 | 4 48 | 10 49 | VComponent 50 | 11 51 | WRect 52 | 0 53 | 0 54 | 5638 55 | 4174 56 | 0 57 | 0 58 | 12 59 | WFileName 60 | 10 61 | libpng.tgt 62 | 0 63 | 0 64 | 13 65 | VComponent 66 | 14 67 | WRect 68 | 1280 69 | 1550 70 | 5638 71 | 4174 72 | 0 73 | 0 74 | 15 75 | WFileName 76 | 11 77 | pngtest.tgt 78 | 0 79 | 1 80 | 16 81 | VComponent 82 | 17 83 | WRect 84 | 524 85 | 497 86 | 5638 87 | 4174 88 | 0 89 | 0 90 | 18 91 | WFileName 92 | 12 93 | pngvalid.tgt 94 | 0 95 | 1 96 | 19 97 | VComponent 98 | 20 99 | WRect 100 | 2054 101 | 2701 102 | 5674 103 | 4232 104 | 0 105 | 0 106 | 21 107 | WFileName 108 | 12 109 | pngstest.tgt 110 | 0 111 | 1 112 | 19 113 | -------------------------------------------------------------------------------- /projects/visualc71/PRJ0041.mak: -------------------------------------------------------------------------------- 1 | # Prevent "Cannot find missing dependency..." warnings while compiling 2 | # pngwin.rc (PRJ0041). 3 | 4 | all: $(IntDir)\alloc.h \ 5 | $(IntDir)\fp.h \ 6 | $(IntDir)\m68881.h \ 7 | $(IntDir)\mem.h \ 8 | $(IntDir)\pngusr.h \ 9 | $(IntDir)\strings.h \ 10 | $(IntDir)\unistd.h \ 11 | $(IntDir)\unixio.h 12 | 13 | $(IntDir)\alloc.h \ 14 | $(IntDir)\fp.h \ 15 | $(IntDir)\m68881.h \ 16 | $(IntDir)\mem.h \ 17 | $(IntDir)\pngusr.h \ 18 | $(IntDir)\strings.h \ 19 | $(IntDir)\unistd.h \ 20 | $(IntDir)\unixio.h: 21 | @!echo.>$@ 22 | -------------------------------------------------------------------------------- /projects/visualc71/README_zlib.txt: -------------------------------------------------------------------------------- 1 | /* WARNING: This file was put in the LibPNG distribution for convenience only. 2 | It is expected to be part of the next zlib release under 3 | "projects\visualc71\README.txt." */ 4 | 5 | Microsoft Developer Studio Project File, Format Version 7.10 for zlib. 6 | 7 | Copyright (C) 2004 Simon-Pierre Cadieux. 8 | Copyright (C) 2004 Cosmin Truta. 9 | 10 | This code is released under the libpng license. 11 | For conditions of distribution and use, see copyright notice in zlib.h. 12 | 13 | NOTE: This project will be removed from libpng-1.5.0. It has 14 | been replaced with the "vstudio" project. 15 | 16 | To use: 17 | 18 | 1) On the main menu, select "File | Open Solution". 19 | Open "zlib.sln". 20 | 21 | 2) Display the Solution Explorer view (Ctrl+Alt+L) 22 | 23 | 3) Set one of the project as the StartUp project. If you just want to build the 24 | binaries set "zlib" as the startup project (Select "zlib" tree view item + 25 | Project | Set as StartUp project). If you want to build and test the 26 | binaries set it to "example" (Select "example" tree view item + Project | 27 | Set as StartUp project), If you want to build the minigzip utility set it to 28 | "minigzip" (Select "minigzip" tree view item + Project | Set as StartUp 29 | project 30 | 31 | 4) Select "Build | Configuration Manager...". 32 | Choose the configuration you wish to build. 33 | 34 | 5) Select "Build | Clean Solution". 35 | 36 | 6) Select "Build | Build Solution (Ctrl-Shift-B)" 37 | 38 | This project builds the zlib binaries as follows: 39 | 40 | * Win32_DLL_Release\zlib1.dll DLL build 41 | * Win32_DLL_Debug\zlib1d.dll DLL build (debug version) 42 | * Win32_LIB_Release\zlib.lib static build 43 | * Win32_LIB_Debug\zlibd.lib static build (debug version) 44 | 45 | -------------------------------------------------------------------------------- /projects/vstudio/build.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | @setlocal enableextensions 3 | 4 | if "%~1" == "/?" goto :help 5 | if "%~1" == "-?" goto :help 6 | if "%~1" == "/help" goto :help 7 | if "%~1" == "-help" goto :help 8 | if "%~1" == "--help" goto :help 9 | goto :run 10 | 11 | :help 12 | echo Usage: 13 | echo %~nx0 [SOLUTION_CONFIG] 14 | echo Examples: 15 | echo %~nx0 "Release|Win32" (default) 16 | echo %~nx0 "Debug|Win32" 17 | echo %~nx0 "Release|ARM64" 18 | echo %~nx0 "Debug|ARM64" 19 | echo etc. 20 | exit /b 2 21 | 22 | :run 23 | set _SOLUTION_CONFIG="%~1" 24 | if %_SOLUTION_CONFIG% == "" set _SOLUTION_CONFIG="Release|Win32" 25 | devenv "%~dp0.\vstudio.sln" /build %_SOLUTION_CONFIG% 26 | -------------------------------------------------------------------------------- /riscv/.editorconfig: -------------------------------------------------------------------------------- 1 | # https://editorconfig.org 2 | 3 | root = false 4 | 5 | # FIXME 6 | [*.[ch]] 7 | max_doc_length = unset 8 | max_line_length = unset 9 | -------------------------------------------------------------------------------- /scripts/SCOPTIONS.ppc: -------------------------------------------------------------------------------- 1 | OPTIMIZE 2 | OPTPEEP 3 | OPTTIME 4 | OPTSCHED 5 | AUTOREGISTER 6 | PARMS=REGISTERS 7 | INCLUDEDIR=hlp:ppc/include 8 | -------------------------------------------------------------------------------- /scripts/autoconf/README.md: -------------------------------------------------------------------------------- 1 | Autoconf Macro Files for the PNG Reference Library 2 | ================================================== 3 | 4 | The Autoconf files associated with libpng are free software. 5 | Use, modification and distribution of each individual file 6 | are subject to the specific licensing terms and conditions 7 | stated at the top of the file. 8 | -------------------------------------------------------------------------------- /scripts/autoconf/ltversion.m4: -------------------------------------------------------------------------------- 1 | # ltversion.m4 -- version numbers -*- Autoconf -*- 2 | # 3 | # Copyright (C) 2004, 2011-2019, 2021-2024 Free Software Foundation, 4 | # Inc. 5 | # Written by Scott James Remnant, 2004 6 | # 7 | # This file is free software; the Free Software Foundation gives 8 | # unlimited permission to copy and/or distribute it, with or without 9 | # modifications, as long as this notice is preserved. 10 | 11 | # @configure_input@ 12 | 13 | # serial 4441 ltversion.m4 14 | # This file is part of GNU Libtool 15 | 16 | m4_define([LT_PACKAGE_VERSION], [2.5.4]) 17 | m4_define([LT_PACKAGE_REVISION], [2.5.4]) 18 | 19 | AC_DEFUN([LTVERSION_VERSION], 20 | [macro_version='2.5.4' 21 | macro_revision='2.5.4' 22 | _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) 23 | _LT_DECL(, macro_revision, 0) 24 | ]) 25 | -------------------------------------------------------------------------------- /scripts/cmake/AUTHORS.md: -------------------------------------------------------------------------------- 1 | CMake Files, Lists and Scripts for the PNG Reference Library 2 | ============================================================ 3 | 4 | Author List 5 | ----------- 6 | 7 | * Alex Gaynor 8 | * Alexey Petruchik 9 | * Andreas Franek 10 | * Andrew Hundt 11 | * B. Scott Michel 12 | * Benjamin Buch 13 | * Bernd Kuhls 14 | * Cameron Cawley 15 | * Christian Ehrlicher 16 | * Christopher Sean Morrison 17 | * Claudio Bley 18 | * Clifford Yapp 19 | * Clinton Ingram 20 | * Cosmin Truta 21 | * Dan Rosser 22 | * David Callu 23 | * Eric Riff 24 | * Erik Scholz 25 | * Gianfranco Costamagna 26 | * Gleb Mazovetskiy 27 | * Glenn Randers-Pehrson 28 | * Gunther Nikl 29 | * Jeremy Maitin-Shepard 30 | * John Bowler 31 | * Jon Creighton 32 | * Joost Nieuwenhuijse 33 | * Kyle Bentley 34 | * Martin Storsjö 35 | * Owen Rudge 36 | * Philip Lowman 37 | * Roger Leigh 38 | * Roger Lowman 39 | * Sam Serrels 40 | * Simon Hausmann 41 | * Steve Robinson 42 | * Timothy Lyanguzov 43 | * Tyler Kropp 44 | * Vadim Barkov 45 | * Vicky Pfau 46 | -------------------------------------------------------------------------------- /scripts/cmake/PNGCheckLibconf.cmake: -------------------------------------------------------------------------------- 1 | # PNGConfig.cmake 2 | # Utility functions for configuring and building libpng 3 | 4 | # Copyright (c) 2025 Cosmin Truta 5 | # 6 | # Use, modification and distribution are subject to 7 | # the same licensing terms and conditions as libpng. 8 | # Please see the copyright notice in png.h or visit 9 | # http://libpng.org/pub/png/src/libpng-LICENSE.txt 10 | # 11 | # SPDX-License-Identifier: libpng-2.0 12 | 13 | # Check libconf file (pnglibconf.h.* or *.dfa): 14 | # png_check_libconf([HEADER ] [DFA_XTRA ]) 15 | function(png_check_libconf) 16 | set(options) 17 | set(oneValueArgs HEADER DFA_XTRA) 18 | set(multiValueArgs) 19 | 20 | cmake_parse_arguments(_CHK "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) 21 | 22 | if(_CHK_HEADER AND _CHK_DFA_XTRA) 23 | message(FATAL_ERROR "png_check_libconf: Mutually-exclusive arguments: HEADER and DFA_XTRA") 24 | endif() 25 | 26 | if(_CHK_HEADER) 27 | if(EXISTS "${_CHK_HEADER}") 28 | if("x${_CHK_HEADER}" STREQUAL "x${PNG_LIBCONF_HEADER_PREBUILT}") 29 | message(STATUS "Using standard libconf header: ${_CHK_HEADER}") 30 | else() 31 | message(STATUS "Using custom libconf header: ${_CHK_HEADER}") 32 | endif() 33 | else() 34 | message(SEND_ERROR "Could not find libconf header: ${_CHK_HEADER}") 35 | endif() 36 | else() 37 | if("x${_CHK_DFA_XTRA}" STREQUAL "x") 38 | message(STATUS "Creating standard configuration") 39 | elseif(EXISTS "${_CHK_DFA_XTRA}") 40 | message(STATUS "Creating custom configuration with DFA_XTRA file: ${_CHK_DFA_XTRA}") 41 | else() 42 | message(SEND_ERROR "Could not find DFA_XTRA file: ${_CHK_DFA_XTRA}") 43 | endif() 44 | endif() 45 | endfunction() 46 | -------------------------------------------------------------------------------- /scripts/cmake/PNGConfig.cmake: -------------------------------------------------------------------------------- 1 | # PNGConfig.cmake 2 | # CMake config file compatible with the FindPNG module. 3 | 4 | # Copyright (c) 2024 Cosmin Truta 5 | # Written by Benjamin Buch, 2024 6 | # 7 | # Use, modification and distribution are subject to 8 | # the same licensing terms and conditions as libpng. 9 | # Please see the copyright notice in png.h or visit 10 | # http://libpng.org/pub/png/src/libpng-LICENSE.txt 11 | # 12 | # SPDX-License-Identifier: libpng-2.0 13 | 14 | include(CMakeFindDependencyMacro) 15 | 16 | find_dependency(ZLIB REQUIRED) 17 | 18 | include("${CMAKE_CURRENT_LIST_DIR}/PNGTargets.cmake") 19 | 20 | if(NOT TARGET PNG::PNG) 21 | if(TARGET PNG::png_shared) 22 | add_library(PNG::PNG INTERFACE IMPORTED) 23 | target_link_libraries(PNG::PNG INTERFACE PNG::png_shared) 24 | elseif(TARGET PNG::png_static) 25 | add_library(PNG::PNG INTERFACE IMPORTED) 26 | target_link_libraries(PNG::PNG INTERFACE PNG::png_static) 27 | endif() 28 | endif() 29 | -------------------------------------------------------------------------------- /scripts/cmake/PNGTest.cmake: -------------------------------------------------------------------------------- 1 | # PNGTest.cmake 2 | # Utility functions for testing libpng 3 | 4 | # Copyright (c) 2018-2025 Cosmin Truta 5 | # Copyright (c) 2016-2018 Glenn Randers-Pehrson 6 | # Written by Roger Leigh, 2016 7 | # 8 | # Use, modification and distribution are subject to 9 | # the same licensing terms and conditions as libpng. 10 | # Please see the copyright notice in png.h or visit 11 | # http://libpng.org/pub/png/src/libpng-LICENSE.txt 12 | # 13 | # SPDX-License-Identifier: libpng-2.0 14 | 15 | # Add a custom target to run a test: 16 | # png_add_test(NAME COMMAND [OPTIONS ...] [FILES ...]) 17 | function(png_add_test) 18 | set(options) 19 | set(oneValueArgs NAME COMMAND) 20 | set(multiValueArgs OPTIONS FILES) 21 | cmake_parse_arguments(_PAT "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) 22 | if(NOT _PAT_NAME) 23 | message(FATAL_ERROR "png_add_test: Missing NAME argument") 24 | endif() 25 | if(NOT _PAT_COMMAND) 26 | message(FATAL_ERROR "png_add_test: Missing COMMAND argument") 27 | endif() 28 | 29 | # Initialize the global variables used by the "${_PAT_NAME}.cmake" script. 30 | set(TEST_OPTIONS "${_PAT_OPTIONS}") 31 | set(TEST_FILES "${_PAT_FILES}") 32 | 33 | # Generate and run the "${_PAT_NAME}.cmake" script. 34 | configure_file("${CMAKE_CURRENT_SOURCE_DIR}/scripts/cmake/test.cmake.in" 35 | "${CMAKE_CURRENT_BINARY_DIR}/tests/${_PAT_NAME}.cmake" 36 | @ONLY) 37 | add_test(NAME "${_PAT_NAME}" 38 | COMMAND "${CMAKE_COMMAND}" 39 | "-DLIBPNG=$" 40 | "-DTEST_COMMAND=$" 41 | -P "${CMAKE_CURRENT_BINARY_DIR}/tests/${_PAT_NAME}.cmake") 42 | endfunction() 43 | -------------------------------------------------------------------------------- /scripts/cmake/README.md: -------------------------------------------------------------------------------- 1 | CMake Files, Lists and Scripts for the PNG Reference Library 2 | ============================================================ 3 | 4 | Copyright Notice 5 | ---------------- 6 | 7 | * Copyright (c) 2018-2024 Cosmin Truta. 8 | * Copyright (c) 2007-2018 Glenn Randers-Pehrson. 9 | * Originally written by Christian Ehrlicher, 2007. 10 | 11 | Use, modification and distribution of the CMake 12 | files in the libpng distribution are subject to 13 | the same licensing terms and conditions as libpng. 14 | Please see the copyright notice in `png.h` or visit 15 | http://libpng.org/pub/png/src/libpng-LICENSE.txt 16 | 17 | File List 18 | --------- 19 | 20 | CMakeLists.txt ==> The main CMake lists file 21 | scripts/cmake/AUTHORS.md ==> The Authors file 22 | scripts/cmake/README.md ==> This file 23 | scripts/cmake/PNGConfig.cmake ==> Config file for FindPNG 24 | scripts/cmake/genchk.cmake.in ==> Template for genchk.cmake 25 | scripts/cmake/genout.cmake.in ==> Template for genout.cmake 26 | scripts/cmake/gensrc.cmake.in ==> Template for gensrc.cmake 27 | scripts/cmake/test.cmake.in ==> Template for test.cmake 28 | 29 | Acknowledgements 30 | ---------------- 31 | 32 | See the accompanying file `scripts/cmake/AUTHORS.md` 33 | for the list of Contributing Authors. 34 | 35 | If you are a Contributing Author, please make sure 36 | that you are being acknowledged. 37 | -------------------------------------------------------------------------------- /scripts/cmake/genchk.cmake.in: -------------------------------------------------------------------------------- 1 | # genchk.cmake.in 2 | # Generate .chk from .out with awk (generic), based upon the automake logic. 3 | 4 | # Copyright (c) 2022-2024 Cosmin Truta 5 | # Copyright (c) 2016 Glenn Randers-Pehrson 6 | # Written by Roger Leigh, 2016 7 | # 8 | # Use, modification and distribution are subject to 9 | # the same licensing terms and conditions as libpng. 10 | # Please see the copyright notice in png.h or visit 11 | # http://libpng.org/pub/png/src/libpng-LICENSE.txt 12 | # 13 | # SPDX-License-Identifier: libpng-2.0 14 | 15 | # Variables substituted from CMakeLists.txt 16 | set(SRCDIR "@CMAKE_CURRENT_SOURCE_DIR@") 17 | set(BINDIR "@CMAKE_CURRENT_BINARY_DIR@") 18 | 19 | set(AWK "@AWK@") 20 | 21 | get_filename_component(INPUTEXT "${INPUT}" EXT) 22 | get_filename_component(OUTPUTEXT "${OUTPUT}" EXT) 23 | get_filename_component(INPUTBASE "${INPUT}" NAME_WE) 24 | get_filename_component(OUTPUTBASE "${OUTPUT}" NAME_WE) 25 | get_filename_component(INPUTDIR "${INPUT}" PATH) 26 | get_filename_component(OUTPUTDIR "${OUTPUT}" PATH) 27 | 28 | if(INPUTEXT STREQUAL ".out" AND OUTPUTEXT STREQUAL ".chk") 29 | # Generate .chk from .out with awk (generic) 30 | file(REMOVE "${OUTPUT}" "${OUTPUTDIR}/${OUTPUTBASE}.new") 31 | execute_process(COMMAND "${AWK}" -f "${BINDIR}/scripts/checksym.awk" 32 | "${SRCDIR}/scripts/${INPUTBASE}.def" 33 | "of=${OUTPUTDIR}/${OUTPUTBASE}.new" 34 | "${INPUT}" 35 | RESULT_VARIABLE AWK_FAIL) 36 | if(AWK_FAIL) 37 | message(FATAL_ERROR "Failed to generate ${OUTPUTDIR}/${OUTPUTBASE}.new") 38 | endif() 39 | file(RENAME "${OUTPUTDIR}/${OUTPUTBASE}.new" "${OUTPUT}") 40 | else() 41 | message(FATAL_ERROR "Unsupported conversion: ${INPUTEXT} to ${OUTPUTEXT}") 42 | endif() 43 | -------------------------------------------------------------------------------- /scripts/cmake/test.cmake.in: -------------------------------------------------------------------------------- 1 | # test.cmake.in 2 | 3 | # Copyright (c) 2024 Cosmin Truta 4 | # Copyright (c) 2016 Glenn Randers-Pehrson 5 | # Written by Roger Leigh, 2016 6 | # 7 | # Use, modification and distribution are subject to 8 | # the same licensing terms and conditions as libpng. 9 | # Please see the copyright notice in png.h or visit 10 | # http://libpng.org/pub/png/src/libpng-LICENSE.txt 11 | # 12 | # SPDX-License-Identifier: libpng-2.0 13 | 14 | set(TEST_OPTIONS "@TEST_OPTIONS@") 15 | set(TEST_FILES "@TEST_FILES@") 16 | 17 | foreach(file ${TEST_FILES}) 18 | file(TO_NATIVE_PATH "${file}" native_file) 19 | list(APPEND NATIVE_TEST_FILES "${native_file}") 20 | endforeach() 21 | 22 | # Add the directory containing libpng to the PATH (Windows only) 23 | if(WIN32) 24 | get_filename_component(LIBPNG_DIR "${LIBPNG}" PATH) 25 | file(TO_NATIVE_PATH "${LIBPNG_DIR}" LIBPNG_DIR) 26 | set(ENV{PATH} "${LIBPNG_DIR};$ENV{PATH}") 27 | endif() 28 | 29 | string(JOIN " " TEST_COMMAND_STRING "${TEST_COMMAND}" ${TEST_OPTIONS} ${NATIVE_TEST_FILES}) 30 | message(STATUS "Running ${TEST_COMMAND_STRING}") 31 | execute_process(COMMAND "${TEST_COMMAND}" ${TEST_OPTIONS} ${NATIVE_TEST_FILES} 32 | RESULT_VARIABLE TEST_STATUS) 33 | if(TEST_STATUS) 34 | message(FATAL_ERROR "Returned failed status ${TEST_STATUS}!") 35 | endif() 36 | -------------------------------------------------------------------------------- /scripts/intprefix.c: -------------------------------------------------------------------------------- 1 | /* intprefix.c - generate an unprefixed internal symbol list 2 | * 3 | * Copyright (c) 2013-2014 Glenn Randers-Pehrson 4 | * 5 | * This code is released under the libpng license. 6 | * For conditions of distribution and use, see the disclaimer 7 | * and license in png.h 8 | */ 9 | 10 | #define PNG_INTERNAL_DATA(type, name, array)\ 11 | PNG_DFN "@" name "@" 12 | 13 | #define PNG_INTERNAL_FUNCTION(type, name, args, attributes)\ 14 | PNG_DFN "@" name "@" 15 | 16 | #define PNG_INTERNAL_CALLBACK(type, name, args, attributes)\ 17 | PNG_DFN "@" name "@" 18 | 19 | #define PNGPREFIX_H /* self generation */ 20 | #include "../pngpriv.h" 21 | -------------------------------------------------------------------------------- /scripts/libpng-config-body.in: -------------------------------------------------------------------------------- 1 | usage() 2 | { 3 | cat < 54 | -------------------------------------------------------------------------------- /scripts/makefile.netbsd: -------------------------------------------------------------------------------- 1 | # makefile for libpng on NetBSD 2 | # Copyright (C) 2018-2025 Cosmin Truta 3 | # Copyright (C) 2007-2009, 2014 Glenn Randers-Pehrson 4 | # Copyright (C) 2002 Patrick R.L. Welche 5 | # 6 | # This code is released under the libpng license. 7 | # For conditions of distribution and use, see the disclaimer 8 | # and license in png.h 9 | 10 | SHLIB_MAJOR= 16 11 | SHLIB_MINOR= 0 12 | 13 | LIB= png 14 | SRCS= png.c pngerror.c pngget.c pngmem.c pngpread.c \ 15 | pngread.c pngrio.c pngrtran.c pngrutil.c pngset.c \ 16 | pngtrans.c pngwio.c pngwrite.c pngwtran.c pngwutil.c 17 | INCS= png.h pngconf.h pnglibconf.h 18 | 19 | CPPFLAGS+= -I${.CURDIR} 20 | CFLAGS+= -Wall -Wextra -Wundef 21 | 22 | CLEANFILES+= pngtest.o pngtest pnglibconf.h 23 | 24 | # Pre-built configuration 25 | # See scripts/pnglibconf.mak for more options 26 | PNGLIBCONF_H_PREBUILT= scripts/pnglibconf.h.prebuilt 27 | 28 | # We should be able to do something like this instead of the manual 29 | # uncommenting, but it core dumps for me at the moment: 30 | # .if ${MACHINE_ARCH} == "i386" 31 | # MKLINT= no 32 | # .endif 33 | 34 | .c.o: 35 | ${CC} -c ${CPPFLAGS} ${CFLAGS} -o $@ $*.c 36 | 37 | pnglibconf.h: ${PNGLIBCONF_H_PREBUILT} 38 | cp ${PNGLIBCONF_H_PREBUILT} $@ 39 | 40 | pngtest.o: pngtest.c 41 | ${CC} -c ${CPPFLAGS} ${CFLAGS} ${.ALLSRC} -o ${.TARGET} 42 | 43 | pngtest: pngtest.o libpng.a 44 | ${CC} ${LDFLAGS} ${.ALLSRC} -o ${.TARGET} -lz -lm 45 | 46 | test: pngtest 47 | ./pngtest 48 | 49 | install: 50 | @echo "The $@ target is no longer supported by this makefile." 51 | @false 52 | 53 | .include 54 | -------------------------------------------------------------------------------- /scripts/makefile.openbsd: -------------------------------------------------------------------------------- 1 | # makefile for libpng 2 | # Copyright (C) 2018-2025 Cosmin Truta 3 | # Copyright (C) 2007-2009, 2014 Glenn Randers-Pehrson 4 | # Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc. 5 | # 6 | # This code is released under the libpng license. 7 | # For conditions of distribution and use, see the disclaimer 8 | # and license in png.h 9 | 10 | SHLIB_MAJOR= 16 11 | SHLIB_MINOR= 0 12 | 13 | LIB= png 14 | SRCS= png.c pngerror.c pngget.c pngmem.c pngpread.c \ 15 | pngread.c pngrio.c pngrtran.c pngrutil.c pngset.c \ 16 | pngtrans.c pngwio.c pngwrite.c pngwtran.c pngwutil.c 17 | HDRS= png.h pngconf.h pnglibconf.h 18 | 19 | CPPFLAGS+= -I${.CURDIR} 20 | CFLAGS+= -Wall -Wextra -Wundef 21 | 22 | CLEANFILES+= pngtest.o pngtest pnglibconf.h 23 | 24 | # Pre-built configuration 25 | # See scripts/pnglibconf.mak for more options 26 | PNGLIBCONF_H_PREBUILT= scripts/pnglibconf.h.prebuilt 27 | 28 | .c.o: 29 | ${CC} -c ${CPPFLAGS} ${CFLAGS} -o $@ $*.c 30 | 31 | pnglibconf.h: ${PNGLIBCONF_H_PREBUILT} 32 | cp ${PNGLIBCONF_H_PREBUILT} $@ 33 | 34 | pngtest.o: pngtest.c 35 | ${CC} -c ${CPPFLAGS} ${CFLAGS} ${.ALLSRC} -o ${.TARGET} 36 | 37 | pngtest: pngtest.o 38 | ${CC} ${LDFLAGS} ${.ALLSRC} -o ${.TARGET} -L${.OBJDIR} -lpng -lz -lm 39 | 40 | test: pngtest 41 | env LD_LIBRARY_PATH="${.OBJDIR}" ./pngtest 42 | 43 | install: 44 | @echo "The $@ target is no longer supported by this makefile." 45 | @false 46 | 47 | .include 48 | -------------------------------------------------------------------------------- /scripts/makefile.riscos: -------------------------------------------------------------------------------- 1 | # Project: libpng 2 | 3 | # Copyright (C) 2020 Cameron Cawley 4 | # Copyright (C) 1997 Tom Tanner 5 | 6 | # Toolflags: 7 | CCflags = -c -depend !Depend -IC:,C:zlib -g -throwback -DRISCOS -fnah -wz 8 | Linkflags = -aif -o $@ 9 | LibFileflags = -c -l -o $@ 10 | 11 | # Final targets: 12 | @.libpng-lib: @.o.png @.o.pngerror @.o.pngrio @.o.pngwio @.o.pngmem \ 13 | @.o.pngpread @.o.pngset @.o.pngget @.o.pngread @.o.pngrtran \ 14 | @.o.pngrutil @.o.pngtrans @.o.pngwrite @.o.pngwtran @.o.pngwutil 15 | LibFile $(LibFileflags) @.o.png @.o.pngerror @.o.pngrio @.o.pngrtran \ 16 | @.o.pngmem @.o.pngpread @.o.pngset @.o.pngget @.o.pngread @.o.pngwio \ 17 | @.o.pngrutil @.o.pngtrans @.o.pngwrite @.o.pngwtran @.o.pngwutil 18 | @.mm-libpng-lib: @.mm.png @.mm.pngerror @.mm.pngrio @.mm.pngwio @.mm.pngmem \ 19 | @.mm.pngpread @.mm.pngset @.mm.pngget @.mm.pngread @.mm.pngrtran \ 20 | @.mm.pngrutil @.mm.pngtrans @.mm.pngwrite @.mm.pngwtran @.mm.pngwutil 21 | LibFile $(LibFileflags) @.mm.png @.mm.pngerror @.mm.pngrio \ 22 | @.mm.pngwio @.mm.pngmem @.mm.pngpread @.mm.pngset @.mm.pngget \ 23 | @.mm.pngread @.mm.pngrtran @.mm.pngrutil @.mm.pngtrans @.mm.pngwrite \ 24 | @.mm.pngwtran @.mm.pngwutil 25 | 26 | 27 | # User-editable dependencies: 28 | Test: @.pngtest 29 | Run @.pngtest 30 | @Remove @.pngtest 31 | 32 | #It would be nice if you could stop "make" listing from here on! 33 | @.pngtest: @.o.pngtest @.libpng-lib C:o.Stubs C:zlib.o.zlib 34 | Link $(Linkflags) @.o.pngtest @.libpng-lib C:o.Stubs C:zlib.o.zlib 35 | 36 | .SUFFIXES: .o .mm .c 37 | 38 | .c.mm: 39 | MemCheck.CC cc $(ccflags) -o $@ LibPng:$< 40 | .c.o: 41 | cc $(ccflags) -o $@ $< 42 | 43 | # See scripts.pnglibconf/mak for how to generate this: 44 | @.h.pnglibconf: @.scripts.pnglibconf/h/prebuilt 45 | Copy @.scripts.pnglibconf/h/prebuilt $@ ~CF~V 46 | 47 | # Static dependencies: 48 | @.o.png @.o.pngerror @.o.pngrio @.o.pngwio @.o.pngmem \ 49 | @.o.pngpread @.o.pngset @.o.pngget @.o.pngread @.o.pngrtran \ 50 | @.o.pngrutil @.o.pngtrans @.o.pngwrite @.o.pngwtran @.o.pngwutil \ 51 | @.o.pngtest: @.h.pnglibconf 52 | 53 | 54 | # Dynamic dependencies: 55 | -------------------------------------------------------------------------------- /scripts/prefix.c: -------------------------------------------------------------------------------- 1 | /* prefix.c - generate an unprefixed symbol list 2 | * 3 | * Copyright (c) 2013-2014 Glenn Randers-Pehrson 4 | * 5 | * This code is released under the libpng license. 6 | * For conditions of distribution and use, see the disclaimer 7 | * and license in png.h 8 | */ 9 | 10 | #define PNG_EXPORTA(ordinal, type, name, args, attributes)\ 11 | PNG_DFN "@" name "@" 12 | 13 | /* The configuration information *before* the additional of symbol renames, 14 | * the list is the C name list; no symbol prefix. 15 | */ 16 | #include "pnglibconf.out" 17 | 18 | PNG_DFN_START_SORT 1 19 | 20 | #include "../png.h" 21 | 22 | PNG_DFN_END_SORT 23 | -------------------------------------------------------------------------------- /scripts/smakefile.ppc: -------------------------------------------------------------------------------- 1 | # Amiga powerUP (TM) Makefile 2 | # makefile for libpng and SAS C V6.58/7.00 PPC compiler 3 | # Copyright (C) 1998 by Andreas R. Kleinert 4 | # 5 | # This code is released under the libpng license. 6 | # For conditions of distribution and use, see the disclaimer 7 | # and license in png.h 8 | 9 | CC = scppc 10 | CFLAGS = NOSTKCHK NOSINT OPTIMIZE OPTGO OPTPEEP OPTINLOCAL OPTINL IDIR /zlib \ 11 | OPTLOOP OPTRDEP=8 OPTDEP=8 OPTCOMP=8 12 | LIBNAME = libpng.a 13 | AR = ppc-amigaos-ar 14 | ARFLAGS = cr 15 | RANLIB = ppc-amigaos-ranlib 16 | LDFLAGS = -r -o 17 | LDLIBS = ../zlib/libzip.a LIB:scppc.a 18 | LN = ppc-amigaos-ld 19 | RM = delete quiet 20 | 21 | OBJS = png.o pngerror.o pngget.o pngmem.o pngpread.o \ 22 | pngread.o pngrio.o pngrtran.o pngrutil.o pngset.o \ 23 | pngtrans.o pngwio.o pngwrite.o pngwtran.o pngwutil.o 24 | 25 | all: $(LIBNAME) pngtest 26 | 27 | $(LIBNAME): $(OBJS) 28 | $(AR) $(ARFLAGS) $@ $(OBJS) 29 | $(RANLIB) $@ 30 | 31 | pngtest: pngtest.o $(LIBNAME) 32 | $(LN) $(LDFLAGS) pngtest LIB:c_ppc.o pngtest.o $(LIBNAME) $(LDLIBS) \ 33 | LIB:end.o 34 | -------------------------------------------------------------------------------- /scripts/sym.c: -------------------------------------------------------------------------------- 1 | /* sym.c - define format of libpng.sym 2 | * 3 | * Copyright (c) 2011-2014 Glenn Randers-Pehrson 4 | * 5 | * This code is released under the libpng license. 6 | * For conditions of distribution and use, see the disclaimer 7 | * and license in png.h 8 | */ 9 | 10 | #define PNG_EXPORTA(ordinal, type, name, args, attributes)\ 11 | PNG_DFN "@" SYMBOL_PREFIX "@@" name "@" 12 | 13 | #include "../png.h" 14 | -------------------------------------------------------------------------------- /scripts/symbols.c: -------------------------------------------------------------------------------- 1 | /* symbols.c - find all exported symbols 2 | * 3 | * Copyright (c) 2011-2014 Glenn Randers-Pehrson 4 | * 5 | * This code is released under the libpng license. 6 | * For conditions of distribution and use, see the disclaimer 7 | * and license in png.h 8 | */ 9 | 10 | /* NOTE: making 'symbols.chk' checks both that the exported 11 | * symbols in the library don't change and (implicitly) that 12 | * scripts/pnglibconf.h.prebuilt is as expected. 13 | * If scripts/pnglibconf.h.prebuilt is remade using 14 | * scripts/pnglibconf.dfa then this checks the .dfa file too. 15 | */ 16 | 17 | #define PNG_EXPORTA(ordinal, type, name, args, attributes)\ 18 | PNG_DFN "@" name "@ @@" ordinal "@" 19 | #define PNG_REMOVED(ordinal, type, name, args, attributes)\ 20 | PNG_DFN "; @" name "@ @@" ordinal "@" 21 | #define PNG_EXPORT_LAST_ORDINAL(ordinal)\ 22 | PNG_DFN "; @@" ordinal "@" 23 | 24 | /* Read the defaults, but use scripts/pnglibconf.h.prebuilt; the 'standard' 25 | * header file. 26 | */ 27 | #include "pnglibconf.h.prebuilt" 28 | #include "../png.h" 29 | 30 | /* Some things are turned off by default. Turn these things 31 | * on here (by hand) to get the APIs they expose and validate 32 | * that no harm is done. This list is the set of options 33 | * defaulted to 'off' in scripts/pnglibconf.dfa 34 | * 35 | * Maintenance: if scripts/pnglibconf.dfa options are changed 36 | * from, or to, 'disabled' this needs updating! 37 | */ 38 | #define PNG_BENIGN_ERRORS_SUPPORTED 39 | #define PNG_ERROR_NUMBERS_SUPPORTED 40 | #define PNG_READ_BIG_ENDIAN_SUPPORTED /* should do nothing! */ 41 | #define PNG_INCH_CONVERSIONS_SUPPORTED 42 | #define PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED 43 | #define PNG_SET_OPTION_SUPPORTED 44 | 45 | #undef PNG_H 46 | #include "../png.h" 47 | 48 | /* Finally there are a couple of places where option support 49 | * actually changes the APIs revealed using a #if/#else/#endif 50 | * test in png.h, test these here. 51 | */ 52 | #undef PNG_FLOATING_POINT_SUPPORTED /* Exposes 'fixed' APIs */ 53 | #undef PNG_ERROR_TEXT_SUPPORTED /* Exposes unsupported APIs */ 54 | 55 | #undef PNG_H 56 | #include "../png.h" 57 | -------------------------------------------------------------------------------- /scripts/vers.c: -------------------------------------------------------------------------------- 1 | /* vers.c - define format of libpng.vers 2 | * 3 | * Copyright (c) 2011-2014 Glenn Randers-Pehrson 4 | * 5 | * This code is released under the libpng license. 6 | * For conditions of distribution and use, see the disclaimer 7 | * and license in png.h 8 | */ 9 | 10 | #define PNG_EXPORTA(ordinal, type, name, args, attributes)\ 11 | PNG_DFN " @" SYMBOL_PREFIX "@@" name "@;" 12 | 13 | PNG_DFN "@" PNGLIB_LIBNAME "@ {global:" 14 | 15 | #include "../png.h" 16 | 17 | PNG_DFN "local: *; };" 18 | -------------------------------------------------------------------------------- /tests/pngimage-full: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec ./pngimage --exhaustive --list-combos --log "${srcdir}/contrib/pngsuite/"*.png 3 | -------------------------------------------------------------------------------- /tests/pngimage-quick: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec ./pngimage --list-combos --log "${srcdir}/contrib/pngsuite/"*.png 3 | -------------------------------------------------------------------------------- /tests/pngstest: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Usage: 4 | # 5 | # tests/pngstest gamma alpha 6 | # 7 | # Run ./pngstest on the PNG files in $srcdir/contrib/testpngs which have the 8 | # given gamma and opacity: 9 | # 10 | # gamma: one of; linear, 1.8, sRGB, none. 11 | # alpha: one of; opaque, tRNS, alpha, none. 'none' is equivalent to !alpha 12 | # 13 | # NOTE: the temporary files pngstest generates have the base name gamma-alpha to 14 | # avoid issues with make -j 15 | # 16 | gamma="$1" 17 | shift 18 | alpha="$1" 19 | shift 20 | args= 21 | LC_ALL="C" # fix glob sort order to ASCII: 22 | for f in "${srcdir}/contrib/testpngs/"*.png 23 | do 24 | g= 25 | case "$f" in 26 | *-linear[.-]*) 27 | test "$gamma" = "linear" && g="$f";; 28 | 29 | *-sRGB[.-]*) 30 | test "$gamma" = "sRGB" && g="$f";; 31 | 32 | *-1.8[.-]*) 33 | test "$gamma" = "1.8" && g="$f";; 34 | 35 | *) 36 | test "$gamma" = "none" && g="$f";; 37 | esac 38 | 39 | case "$g" in 40 | "") 41 | :;; 42 | 43 | *-alpha[-.]*) 44 | test "$alpha" = "alpha" && args="$args $g";; 45 | 46 | *-tRNS[-.]*) 47 | test "$alpha" = "tRNS" -o "$alpha" = "none" && args="$args $g";; 48 | 49 | *) 50 | test "$alpha" = "opaque" -o "$alpha" = "none" && args="$args $g";; 51 | esac 52 | done 53 | # This only works if the arguments don't contain spaces; they don't. 54 | exec ./pngstest --tmpfile "${gamma}-${alpha}-" --log ${1+"$@"} $args 55 | -------------------------------------------------------------------------------- /tests/pngstest-1.8: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec "${srcdir}/tests/pngstest" 1.8 none 3 | -------------------------------------------------------------------------------- /tests/pngstest-1.8-alpha: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec "${srcdir}/tests/pngstest" 1.8 alpha 3 | -------------------------------------------------------------------------------- /tests/pngstest-linear: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec "${srcdir}/tests/pngstest" linear none 3 | -------------------------------------------------------------------------------- /tests/pngstest-linear-alpha: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec "${srcdir}/tests/pngstest" linear alpha 3 | -------------------------------------------------------------------------------- /tests/pngstest-none: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec "${srcdir}/tests/pngstest" none none 3 | -------------------------------------------------------------------------------- /tests/pngstest-none-alpha: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec "${srcdir}/tests/pngstest" none alpha 3 | -------------------------------------------------------------------------------- /tests/pngstest-sRGB: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec "${srcdir}/tests/pngstest" sRGB none 3 | -------------------------------------------------------------------------------- /tests/pngstest-sRGB-alpha: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec "${srcdir}/tests/pngstest" sRGB alpha 3 | -------------------------------------------------------------------------------- /tests/pngunknown-IDAT: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec ./pngunknown --strict default=discard IDAT=save "${srcdir}/pngtest.png" 3 | -------------------------------------------------------------------------------- /tests/pngunknown-discard: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec ./pngunknown --strict default=discard "${srcdir}/pngtest.png" 3 | -------------------------------------------------------------------------------- /tests/pngunknown-if-safe: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec ./pngunknown --strict default=if-safe "${srcdir}/pngtest.png" 3 | -------------------------------------------------------------------------------- /tests/pngunknown-sAPI: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec ./pngunknown --strict bKGD=save cHRM=save gAMA=save all=discard iCCP=save sBIT=save sRGB=save eXIf=save "${srcdir}/pngtest.png" 3 | -------------------------------------------------------------------------------- /tests/pngunknown-sTER: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec ./pngunknown --strict sTER=if-safe "${srcdir}/pngtest.png" 3 | -------------------------------------------------------------------------------- /tests/pngunknown-save: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec ./pngunknown --strict default=save "${srcdir}/pngtest.png" 3 | -------------------------------------------------------------------------------- /tests/pngunknown-vpAg: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec ./pngunknown --strict vpAg=if-safe "${srcdir}/pngtest.png" 3 | -------------------------------------------------------------------------------- /tests/pngvalid-gamma-16-to-8: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec ./pngvalid --strict --gamma-16-to-8 3 | -------------------------------------------------------------------------------- /tests/pngvalid-gamma-alpha-mode: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec ./pngvalid --strict --gamma-alpha-mode 3 | -------------------------------------------------------------------------------- /tests/pngvalid-gamma-background: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec ./pngvalid --strict --gamma-background 3 | -------------------------------------------------------------------------------- /tests/pngvalid-gamma-expand16-alpha-mode: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec ./pngvalid --strict --gamma-alpha-mode --expand16 3 | -------------------------------------------------------------------------------- /tests/pngvalid-gamma-expand16-background: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec ./pngvalid --strict --gamma-background --expand16 3 | -------------------------------------------------------------------------------- /tests/pngvalid-gamma-expand16-transform: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec ./pngvalid --strict --gamma-transform --expand16 3 | -------------------------------------------------------------------------------- /tests/pngvalid-gamma-sbit: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec ./pngvalid --strict --gamma-sbit 3 | -------------------------------------------------------------------------------- /tests/pngvalid-gamma-threshold: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec ./pngvalid --strict --gamma-threshold 3 | -------------------------------------------------------------------------------- /tests/pngvalid-gamma-transform: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec ./pngvalid --strict --gamma-transform 3 | -------------------------------------------------------------------------------- /tests/pngvalid-progressive-interlace-standard: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec ./pngvalid --strict --standard --progressive-read --interlace 3 | -------------------------------------------------------------------------------- /tests/pngvalid-progressive-size: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec ./pngvalid --strict --size --progressive-read 3 | -------------------------------------------------------------------------------- /tests/pngvalid-progressive-standard: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec ./pngvalid --strict --standard --progressive-read 3 | -------------------------------------------------------------------------------- /tests/pngvalid-standard: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec ./pngvalid --strict --standard 3 | -------------------------------------------------------------------------------- /tests/pngvalid-transform: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec ./pngvalid --strict --transform 3 | --------------------------------------------------------------------------------