├── .cmake.conf ├── .gitreview ├── .tag ├── CMakeLists.txt ├── LICENSES ├── BSD-3-Clause.txt ├── GFDL-1.3-no-invariants-only.txt ├── GPL-2.0-only.txt ├── GPL-3.0-only.txt ├── LGPL-3.0-only.txt ├── LicenseRef-Qt-Commercial.txt └── libtiff.txt ├── REUSE.toml ├── cmake ├── FindLibmng.cmake ├── FindWrapJasper.cmake └── FindWrapWebP.cmake ├── coin ├── axivion │ └── ci_config_linux.json └── module_config.yaml ├── config_help.txt ├── configure.cmake ├── dependencies.yaml ├── dist ├── REUSE.toml ├── changes-5.0.1 ├── changes-5.0.2 ├── changes-5.1.0 ├── changes-5.1.1 ├── changes-5.10.0 ├── changes-5.10.1 ├── changes-5.11.0 ├── changes-5.11.1 ├── changes-5.11.2 ├── changes-5.11.3 ├── changes-5.12.0 ├── changes-5.12.1 ├── changes-5.12.10 ├── changes-5.12.2 ├── changes-5.12.3 ├── changes-5.12.4 ├── changes-5.12.5 ├── changes-5.13.0 ├── changes-5.13.1 ├── changes-5.13.2 ├── changes-5.14.0 ├── changes-5.14.1 ├── changes-5.14.2 ├── changes-5.15.0 ├── changes-5.15.1 ├── changes-5.15.2 ├── changes-5.3.0 ├── changes-5.4.0 ├── changes-5.5.0 ├── changes-5.6.0 ├── changes-5.6.3 ├── changes-5.7.0 ├── changes-5.8.0 ├── changes-5.9.0 ├── changes-5.9.1 ├── changes-5.9.2 ├── changes-5.9.3 ├── changes-5.9.4 ├── changes-5.9.5 ├── changes-5.9.6 └── changes-6.0.0 ├── licenseRule.json ├── qt_cmdline.cmake ├── src ├── 3rdparty │ ├── libtiff.pri │ ├── libtiff │ │ ├── COPYRIGHT │ │ ├── ChangeLog │ │ ├── RELEASE-DATE │ │ ├── REUSE.toml │ │ ├── TODO │ │ ├── VERSION │ │ ├── libtiff │ │ │ ├── libtiff.def │ │ │ ├── libtiff.map │ │ │ ├── libtiffxx.map │ │ │ ├── mkg3states.c │ │ │ ├── t4.h │ │ │ ├── tif_aux.c │ │ │ ├── tif_close.c │ │ │ ├── tif_codec.c │ │ │ ├── tif_color.c │ │ │ ├── tif_compress.c │ │ │ ├── tif_config.h │ │ │ ├── tif_config.h.cmake.in │ │ │ ├── tif_config.h.in │ │ │ ├── tif_dir.c │ │ │ ├── tif_dir.h │ │ │ ├── tif_dirinfo.c │ │ │ ├── tif_dirread.c │ │ │ ├── tif_dirwrite.c │ │ │ ├── tif_dumpmode.c │ │ │ ├── tif_error.c │ │ │ ├── tif_extension.c │ │ │ ├── tif_fax3.c │ │ │ ├── tif_fax3.h │ │ │ ├── tif_fax3sm.c │ │ │ ├── tif_flush.c │ │ │ ├── tif_getimage.c │ │ │ ├── tif_hash_set.c │ │ │ ├── tif_hash_set.h │ │ │ ├── tif_jbig.c │ │ │ ├── tif_jpeg.c │ │ │ ├── tif_jpeg_12.c │ │ │ ├── tif_lerc.c │ │ │ ├── tif_luv.c │ │ │ ├── tif_lzma.c │ │ │ ├── tif_lzw.c │ │ │ ├── tif_next.c │ │ │ ├── tif_ojpeg.c │ │ │ ├── tif_open.c │ │ │ ├── tif_packbits.c │ │ │ ├── tif_pixarlog.c │ │ │ ├── tif_predict.c │ │ │ ├── tif_predict.h │ │ │ ├── tif_print.c │ │ │ ├── tif_read.c │ │ │ ├── tif_stream.cxx │ │ │ ├── tif_strip.c │ │ │ ├── tif_swab.c │ │ │ ├── tif_thunder.c │ │ │ ├── tif_tile.c │ │ │ ├── tif_unix.c │ │ │ ├── tif_version.c │ │ │ ├── tif_warning.c │ │ │ ├── tif_webp.c │ │ │ ├── tif_win32.c │ │ │ ├── tif_write.c │ │ │ ├── tif_zip.c │ │ │ ├── tif_zstd.c │ │ │ ├── tiff.h │ │ │ ├── tiffconf.h │ │ │ ├── tiffconf.h.cmake.in │ │ │ ├── tiffconf.h.in │ │ │ ├── tiffio.h │ │ │ ├── tiffio.hxx │ │ │ ├── tiffiop.h │ │ │ ├── tiffvers.h │ │ │ └── uvcode.h │ │ └── qt_attribution.json │ ├── libwebp.pri │ ├── libwebp │ │ ├── AUTHORS │ │ ├── COPYING │ │ ├── ChangeLog │ │ ├── NEWS │ │ ├── PATENTS │ │ ├── README │ │ ├── REUSE.toml │ │ ├── patches │ │ │ ├── 0001-Fix-Windows-build-for-clang-and-neon.patch │ │ │ └── 0002-Fix-neon-build-for-qnx.patch │ │ ├── qt_attribution.json │ │ ├── sharpyuv │ │ │ ├── sharpyuv.c │ │ │ ├── sharpyuv.h │ │ │ ├── sharpyuv_cpu.c │ │ │ ├── sharpyuv_cpu.h │ │ │ ├── sharpyuv_csp.c │ │ │ ├── sharpyuv_csp.h │ │ │ ├── sharpyuv_dsp.c │ │ │ ├── sharpyuv_dsp.h │ │ │ ├── sharpyuv_gamma.c │ │ │ ├── sharpyuv_gamma.h │ │ │ ├── sharpyuv_neon.c │ │ │ └── sharpyuv_sse2.c │ │ └── src │ │ │ ├── dec │ │ │ ├── alpha_dec.c │ │ │ ├── alphai_dec.h │ │ │ ├── buffer_dec.c │ │ │ ├── common_dec.h │ │ │ ├── frame_dec.c │ │ │ ├── idec_dec.c │ │ │ ├── io_dec.c │ │ │ ├── quant_dec.c │ │ │ ├── tree_dec.c │ │ │ ├── vp8_dec.c │ │ │ ├── vp8_dec.h │ │ │ ├── vp8i_dec.h │ │ │ ├── vp8l_dec.c │ │ │ ├── vp8li_dec.h │ │ │ ├── webp_dec.c │ │ │ └── webpi_dec.h │ │ │ ├── demux │ │ │ ├── anim_decode.c │ │ │ └── demux.c │ │ │ ├── dsp │ │ │ ├── alpha_processing.c │ │ │ ├── alpha_processing_mips_dsp_r2.c │ │ │ ├── alpha_processing_neon.c │ │ │ ├── alpha_processing_sse2.c │ │ │ ├── alpha_processing_sse41.c │ │ │ ├── common_sse2.h │ │ │ ├── common_sse41.h │ │ │ ├── cost.c │ │ │ ├── cost_mips32.c │ │ │ ├── cost_mips_dsp_r2.c │ │ │ ├── cost_neon.c │ │ │ ├── cost_sse2.c │ │ │ ├── cpu.c │ │ │ ├── cpu.h │ │ │ ├── dec.c │ │ │ ├── dec_clip_tables.c │ │ │ ├── dec_mips32.c │ │ │ ├── dec_mips_dsp_r2.c │ │ │ ├── dec_msa.c │ │ │ ├── dec_neon.c │ │ │ ├── dec_sse2.c │ │ │ ├── dec_sse41.c │ │ │ ├── dsp.h │ │ │ ├── enc.c │ │ │ ├── enc_mips32.c │ │ │ ├── enc_mips_dsp_r2.c │ │ │ ├── enc_msa.c │ │ │ ├── enc_neon.c │ │ │ ├── enc_sse2.c │ │ │ ├── enc_sse41.c │ │ │ ├── filters.c │ │ │ ├── filters_mips_dsp_r2.c │ │ │ ├── filters_msa.c │ │ │ ├── filters_neon.c │ │ │ ├── filters_sse2.c │ │ │ ├── lossless.c │ │ │ ├── lossless.h │ │ │ ├── lossless_common.h │ │ │ ├── lossless_enc.c │ │ │ ├── lossless_enc_mips32.c │ │ │ ├── lossless_enc_mips_dsp_r2.c │ │ │ ├── lossless_enc_msa.c │ │ │ ├── lossless_enc_neon.c │ │ │ ├── lossless_enc_sse2.c │ │ │ ├── lossless_enc_sse41.c │ │ │ ├── lossless_mips_dsp_r2.c │ │ │ ├── lossless_msa.c │ │ │ ├── lossless_neon.c │ │ │ ├── lossless_sse2.c │ │ │ ├── lossless_sse41.c │ │ │ ├── mips_macro.h │ │ │ ├── msa_macro.h │ │ │ ├── neon.h │ │ │ ├── quant.h │ │ │ ├── rescaler.c │ │ │ ├── rescaler_mips32.c │ │ │ ├── rescaler_mips_dsp_r2.c │ │ │ ├── rescaler_msa.c │ │ │ ├── rescaler_neon.c │ │ │ ├── rescaler_sse2.c │ │ │ ├── ssim.c │ │ │ ├── ssim_sse2.c │ │ │ ├── upsampling.c │ │ │ ├── upsampling_mips_dsp_r2.c │ │ │ ├── upsampling_msa.c │ │ │ ├── upsampling_neon.c │ │ │ ├── upsampling_sse2.c │ │ │ ├── upsampling_sse41.c │ │ │ ├── yuv.c │ │ │ ├── yuv.h │ │ │ ├── yuv_mips32.c │ │ │ ├── yuv_mips_dsp_r2.c │ │ │ ├── yuv_neon.c │ │ │ ├── yuv_sse2.c │ │ │ └── yuv_sse41.c │ │ │ ├── enc │ │ │ ├── alpha_enc.c │ │ │ ├── analysis_enc.c │ │ │ ├── backward_references_cost_enc.c │ │ │ ├── backward_references_enc.c │ │ │ ├── backward_references_enc.h │ │ │ ├── config_enc.c │ │ │ ├── cost_enc.c │ │ │ ├── cost_enc.h │ │ │ ├── filter_enc.c │ │ │ ├── frame_enc.c │ │ │ ├── histogram_enc.c │ │ │ ├── histogram_enc.h │ │ │ ├── iterator_enc.c │ │ │ ├── near_lossless_enc.c │ │ │ ├── picture_csp_enc.c │ │ │ ├── picture_enc.c │ │ │ ├── picture_psnr_enc.c │ │ │ ├── picture_rescale_enc.c │ │ │ ├── picture_tools_enc.c │ │ │ ├── predictor_enc.c │ │ │ ├── quant_enc.c │ │ │ ├── syntax_enc.c │ │ │ ├── token_enc.c │ │ │ ├── tree_enc.c │ │ │ ├── vp8i_enc.h │ │ │ ├── vp8l_enc.c │ │ │ ├── vp8li_enc.h │ │ │ └── webp_enc.c │ │ │ ├── mux │ │ │ ├── anim_encode.c │ │ │ ├── animi.h │ │ │ ├── muxedit.c │ │ │ ├── muxi.h │ │ │ ├── muxinternal.c │ │ │ └── muxread.c │ │ │ ├── utils │ │ │ ├── bit_reader_inl_utils.h │ │ │ ├── bit_reader_utils.c │ │ │ ├── bit_reader_utils.h │ │ │ ├── bit_writer_utils.c │ │ │ ├── bit_writer_utils.h │ │ │ ├── color_cache_utils.c │ │ │ ├── color_cache_utils.h │ │ │ ├── endian_inl_utils.h │ │ │ ├── filters_utils.c │ │ │ ├── filters_utils.h │ │ │ ├── huffman_encode_utils.c │ │ │ ├── huffman_encode_utils.h │ │ │ ├── huffman_utils.c │ │ │ ├── huffman_utils.h │ │ │ ├── palette.c │ │ │ ├── palette.h │ │ │ ├── quant_levels_dec_utils.c │ │ │ ├── quant_levels_dec_utils.h │ │ │ ├── quant_levels_utils.c │ │ │ ├── quant_levels_utils.h │ │ │ ├── random_utils.c │ │ │ ├── random_utils.h │ │ │ ├── rescaler_utils.c │ │ │ ├── rescaler_utils.h │ │ │ ├── thread_utils.c │ │ │ ├── thread_utils.h │ │ │ ├── utils.c │ │ │ └── utils.h │ │ │ └── webp │ │ │ ├── config.h │ │ │ ├── decode.h │ │ │ ├── demux.h │ │ │ ├── encode.h │ │ │ ├── format_constants.h │ │ │ ├── mux.h │ │ │ ├── mux_types.h │ │ │ └── types.h │ └── zlib_dependency.pri ├── CMakeLists.txt ├── imageformats │ ├── CMakeLists.txt │ ├── configure.cmake │ ├── doc │ │ ├── qtimageformats.qdocconf │ │ └── src │ │ │ └── qtimageformats.qdoc │ └── qt_cmdline.cmake └── plugins │ ├── CMakeLists.txt │ └── imageformats │ ├── CMakeLists.txt │ ├── dds │ ├── README │ ├── dds.json │ ├── ddsheader.cpp │ ├── ddsheader.h │ ├── main.cpp │ ├── qddshandler.cpp │ └── qddshandler.h │ ├── icns │ ├── CMakeLists.txt │ ├── README │ ├── icns.json │ ├── main.cpp │ ├── qicnshandler.cpp │ └── qicnshandler_p.h │ ├── jp2 │ ├── CMakeLists.txt │ ├── jp2.json │ ├── main.cpp │ ├── qjp2handler.cpp │ └── qjp2handler_p.h │ ├── macheif │ ├── CMakeLists.txt │ ├── macheif.json │ ├── main.cpp │ ├── qmacheifhandler.cpp │ └── qmacheifhandler.h │ ├── macjp2 │ ├── CMakeLists.txt │ ├── macjp2.json │ ├── main.cpp │ ├── qmacjp2handler.cpp │ └── qmacjp2handler.h │ ├── mng │ ├── CMakeLists.txt │ ├── main.cpp │ ├── mng.json │ ├── qmnghandler.cpp │ └── qmnghandler_p.h │ ├── shared │ ├── qiiofhelpers.cpp │ ├── qiiofhelpers.pri │ └── qiiofhelpers_p.h │ ├── tga │ ├── CMakeLists.txt │ ├── main.cpp │ ├── qtgafile.cpp │ ├── qtgafile.h │ ├── qtgahandler.cpp │ ├── qtgahandler.h │ └── tga.json │ ├── tiff │ ├── CMakeLists.txt │ ├── main.cpp │ ├── qtiffhandler.cpp │ ├── qtiffhandler_p.h │ └── tiff.json │ ├── wbmp │ ├── CMakeLists.txt │ ├── main.cpp │ ├── qwbmphandler.cpp │ ├── qwbmphandler_p.h │ └── wbmp.json │ └── webp │ ├── CMakeLists.txt │ ├── main.cpp │ ├── qwebphandler.cpp │ ├── qwebphandler_p.h │ └── webp.json └── tests ├── CMakeLists.txt ├── auto ├── CMakeLists.txt ├── dds │ ├── CMakeLists.txt │ └── tst_qdds.cpp ├── heif │ ├── BLACKLIST │ ├── CMakeLists.txt │ └── tst_qheif.cpp ├── icns │ ├── CMakeLists.txt │ └── tst_qicns.cpp ├── jp2 │ ├── CMakeLists.txt │ └── tst_qjp2.cpp ├── mng │ ├── CMakeLists.txt │ └── tst_qmng.cpp ├── tga │ ├── CMakeLists.txt │ └── tst_qtga.cpp ├── tiff │ ├── CMakeLists.txt │ └── tst_qtiff.cpp ├── wbmp │ ├── CMakeLists.txt │ └── tst_qwbmp.cpp └── webp │ ├── BLACKLIST │ ├── CMakeLists.txt │ ├── images │ ├── kollada.png │ ├── kollada.webp │ ├── kollada_animation.webp │ ├── kollada_lossless.webp │ └── kollada_noalpha.webp │ └── tst_qwebp.cpp ├── benchmarks ├── CMakeLists.txt ├── benchmarks.pro ├── mng │ ├── CMakeLists.txt │ ├── mng.pro │ └── tst_qmng.cpp └── tiff │ ├── CMakeLists.txt │ ├── tiff.pro │ └── tst_qtiff.cpp └── shared └── images ├── dds ├── A16B16G16R16.dds ├── A16B16G16R16F.dds ├── A1R5G5B5.dds ├── A2B10G10R10.dds ├── A2R10G10B10.dds ├── A2W10V10U10.dds ├── A32B32G32R32F.dds ├── A4L4.dds ├── A4R4G4B4.dds ├── A8.dds ├── A8B8G8R8.dds ├── A8L8.dds ├── A8R3G3B2.dds ├── A8R8G8B8.2.dds ├── A8R8G8B8.dds ├── ATI2.dds ├── CxV8U8.dds ├── DXT1.dds ├── DXT2.dds ├── DXT3.dds ├── DXT4.dds ├── DXT5.dds ├── G16R16.dds ├── G16R16F.dds ├── G32R32F.dds ├── G8R8_G8B8.dds ├── L16.dds ├── L6V5U5.dds ├── L8.dds ├── P4.dds ├── P8.dds ├── Q16W16V16U16.dds ├── Q8W8V8U8.dds ├── R16F.dds ├── R32F.dds ├── R3G3B2.dds ├── R5G6B5.dds ├── R8G8B8.dds ├── R8G8_B8G8.dds ├── RXGB.dds ├── UYVY.dds ├── V16U16.dds ├── V8U8.dds ├── X1R5G5B5.dds ├── X4R4G4B4.dds ├── X8B8G8R8.dds ├── X8L8V8U8.dds ├── X8R8G8B8.dds ├── YUY2.dds └── mipmaps.dds ├── heif ├── col320x480.heic └── newlogoCCW.heic ├── icns ├── test-32bit.icns ├── test-jp2.icns ├── test-legacy.icns ├── test-png.icns ├── test-variants.icns ├── test-write-1024.png ├── test-write-128.png ├── test-write-16.png ├── test-write-256.png ├── test-write-32.png ├── test-write-512.png └── test-write-64.png ├── jp2 ├── logo.bmp └── logo.jp2 ├── mng.qrc ├── mng ├── animation.mng ├── ball.mng ├── corrupt.mng ├── dutch.mng └── fire.mng ├── tga └── test-flag.tga ├── tiff.qrc ├── tiff ├── 16bpc.tiff ├── big_16bpc.tiff ├── big_grayscale.tiff ├── big_rgb.tiff ├── big_rgb_bigendian.tiff ├── colorful.bmp ├── corrupt-data.tif ├── gray16.tiff ├── grayscale-ref.tif ├── grayscale.tif ├── image.tif ├── image_100dpi.tif ├── indexed_orientation_1.tiff ├── indexed_orientation_2.tiff ├── indexed_orientation_3.tiff ├── indexed_orientation_4.tiff ├── indexed_orientation_5.tiff ├── indexed_orientation_6.tiff ├── indexed_orientation_7.tiff ├── indexed_orientation_8.tiff ├── mono_orientation_1.tiff ├── mono_orientation_2.tiff ├── mono_orientation_3.tiff ├── mono_orientation_4.tiff ├── mono_orientation_5.tiff ├── mono_orientation_6.tiff ├── mono_orientation_7.tiff ├── mono_orientation_8.tiff ├── multipage.tiff ├── oddsize_grayscale.tiff ├── oddsize_mono.tiff ├── original_grayscale.tiff ├── original_indexed.tiff ├── original_mono.tiff ├── original_rgb.tiff ├── rgb_orientation_1.tiff ├── rgb_orientation_2.tiff ├── rgb_orientation_3.tiff ├── rgb_orientation_4.tiff ├── rgb_orientation_5.tiff ├── rgb_orientation_6.tiff ├── rgb_orientation_7.tiff ├── rgb_orientation_8.tiff ├── rgba_adobedeflate_littleendian.tif ├── rgba_lzw_littleendian.tif ├── rgba_nocompression_bigendian.tif ├── rgba_nocompression_littleendian.tif ├── rgba_packbits_littleendian.tif ├── rgba_zipdeflate_littleendian.tif ├── teapot.tiff ├── teapot_cmyk.tiff ├── tiled_grayscale.tiff ├── tiled_indexed.tiff ├── tiled_mono.tiff ├── tiled_oddsize_grayscale.tiff ├── tiled_oddsize_mono.tiff └── tiled_rgb.tiff └── wbmp ├── qt-logo-big.wbmp └── qt-logo-small.wbmp /.cmake.conf: -------------------------------------------------------------------------------- 1 | set(QT_REPO_MODULE_VERSION "6.11.0") 2 | set(QT_REPO_MODULE_PRERELEASE_VERSION_SEGMENT "alpha1") 3 | set(QT_EXTRA_INTERNAL_TARGET_DEFINES "QT_NO_AS_CONST=1") 4 | list(APPEND QT_EXTRA_INTERNAL_TARGET_DEFINES "QT_NO_FOREACH=1") 5 | -------------------------------------------------------------------------------- /.gitreview: -------------------------------------------------------------------------------- 1 | [gerrit] 2 | host=codereview.qt-project.org 3 | project=qt/qtimageformats 4 | defaultbranch=dev 5 | -------------------------------------------------------------------------------- /.tag: -------------------------------------------------------------------------------- 1 | 232242d6657ea77a72a76613e353bd8bb2bbf2b6 2 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2022 The Qt Company Ltd. 2 | # SPDX-License-Identifier: BSD-3-Clause 3 | 4 | cmake_minimum_required(VERSION 3.16) 5 | 6 | include(.cmake.conf) 7 | project(QtImageFormats 8 | VERSION "${QT_REPO_MODULE_VERSION}" 9 | DESCRIPTION "Qt ImageFormats Libraries" 10 | HOMEPAGE_URL "https://qt.io/" 11 | LANGUAGES CXX C 12 | ) 13 | 14 | find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS BuildInternals Core) 15 | find_package(Qt6 ${PROJECT_VERSION} QUIET CONFIG OPTIONAL_COMPONENTS Gui) 16 | qt_internal_project_setup() 17 | 18 | if(NOT TARGET Qt::Gui) 19 | message(NOTICE "Skipping the build as the condition \"TARGET Qt::Gui\" is not met.") 20 | return() 21 | endif() 22 | qt_build_repo() 23 | -------------------------------------------------------------------------------- /LICENSES/BSD-3-Clause.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) . 2 | 3 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 4 | 5 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 6 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 7 | 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 8 | 9 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 10 | -------------------------------------------------------------------------------- /LICENSES/LicenseRef-Qt-Commercial.txt: -------------------------------------------------------------------------------- 1 | Licensees holding valid commercial Qt licenses may use this software in 2 | accordance with the the terms contained in a written agreement between 3 | you and The Qt Company. Alternatively, the terms and conditions that were 4 | accepted by the licensee when buying and/or downloading the 5 | software do apply. 6 | 7 | For the latest licensing terms and conditions, see https://www.qt.io/terms-conditions. 8 | For further information use the contact form at https://www.qt.io/contact-us. 9 | -------------------------------------------------------------------------------- /LICENSES/libtiff.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 1988-1997 Sam Leffler 2 | Copyright (c) 1991-1997 Silicon Graphics, Inc. 3 | 4 | Permission to use, copy, modify, distribute, and sell this software and 5 | its documentation for any purpose is hereby granted without fee, provided 6 | that (i) the above copyright notices and this permission notice appear in 7 | all copies of the software and related documentation, and (ii) the names of 8 | Sam Leffler and Silicon Graphics may not be used in any advertising or 9 | publicity relating to the software without the specific, prior written 10 | permission of Sam Leffler and Silicon Graphics. 11 | 12 | THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 13 | EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 14 | WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 15 | 16 | IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR 17 | ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, 18 | OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 19 | WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 20 | LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 21 | OF THIS SOFTWARE. 22 | -------------------------------------------------------------------------------- /REUSE.toml: -------------------------------------------------------------------------------- 1 | version = 1 2 | 3 | [[annotations]] 4 | path = ["tests/auto/**", "tests/shared/images/**"] 5 | precedence = "closest" 6 | SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd." 7 | SPDX-License-Identifier = "LicenseRef-Qt-Commercial OR GPL-3.0-only" 8 | 9 | [[annotations]] 10 | path = ["src/plugins/**.json"] 11 | precedence = "closest" 12 | SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd." 13 | SPDX-License-Identifier = "LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only" 14 | 15 | [[annotations]] 16 | path = ["**.pro", ".cmake.conf", "**.yaml", ".tag", 17 | "**.pri", "qt_cmdline.cmake", "**ci_config_linux.json"] 18 | precedence = "closest" 19 | comment = "build system" 20 | SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd." 21 | SPDX-License-Identifier = "BSD-3-Clause" 22 | 23 | [[annotations]] 24 | path = ["**/.gitattributes", "**.gitignore", "**.gitreview"] 25 | precedence = "closest" 26 | comment = "infrastructure" 27 | SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd." 28 | SPDX-License-Identifier = "LicenseRef-Qt-Commercial OR BSD-3-Clause" 29 | 30 | [[annotations]] 31 | path = ["**/README*", "**.qdocconf", "config_help.txt"] 32 | comment = "documentation" 33 | precedence = "closest" 34 | SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd." 35 | SPDX-License-Identifier = "LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only" 36 | 37 | [[annotations]] 38 | path = ["**.toml", "licenseRule.json"] 39 | precedence = "override" 40 | SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd." 41 | SPDX-License-Identifier = "LicenseRef-Qt-Commercial OR BSD-3-Clause" 42 | 43 | [[annotations]] 44 | path = ["**/qt_attribution.json"] 45 | precedence = "override" 46 | SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd." 47 | SPDX-License-Identifier = "LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only" 48 | -------------------------------------------------------------------------------- /cmake/FindLibmng.cmake: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2022 The Qt Company Ltd. 2 | # SPDX-License-Identifier: BSD-3-Clause 3 | 4 | if(TARGET Libmng::Libmng) 5 | set(Libmng_FOUND TRUE) 6 | return() 7 | endif() 8 | 9 | find_package(PkgConfig QUIET) 10 | 11 | if(PkgConfig_FOUND) 12 | pkg_check_modules(Libmng IMPORTED_TARGET libmng) 13 | 14 | if(TARGET PkgConfig::Libmng) 15 | add_library(Libmng::Libmng INTERFACE IMPORTED) 16 | target_link_libraries(Libmng::Libmng INTERFACE PkgConfig::Libmng) 17 | set(Libmng_FOUND TRUE) 18 | endif() 19 | endif() 20 | 21 | if(NOT TARGET Libmng::Libmng) 22 | find_library(LIBMNG_LIBRARY NAMES mng) 23 | find_path(LIBMNG_INCLUDE_DIR libmng.h) 24 | 25 | if(LIBMNG_LIBRARY AND LIBMNG_INCLUDE_DIR) 26 | add_library(Libmng::Libmng UNKNOWN IMPORTED) 27 | set_target_properties(Libmng::Libmng PROPERTIES 28 | IMPORTED_LOCATION ${LIBMNG_LIBRARY} 29 | INTERFACE_INCLUDE_DIRECTORIES ${LIBMNG_INCLUDE_DIR} 30 | ) 31 | endif() 32 | 33 | include(FindPackageHandleStandardArgs) 34 | find_package_handle_standard_args(Libmng REQUIRED_VARS 35 | LIBMNG_LIBRARY 36 | LIBMNG_INCLUDE_DIR 37 | ) 38 | endif() 39 | -------------------------------------------------------------------------------- /cmake/FindWrapJasper.cmake: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2022 The Qt Company Ltd. 2 | # SPDX-License-Identifier: BSD-3-Clause 3 | 4 | # We can't create the same interface imported target multiple times, CMake will complain if we do 5 | # that. This can happen if the find_package call is done in multiple different subdirectories. 6 | if(TARGET WrapJasper::WrapJasper) 7 | set(WrapJasper_FOUND TRUE) 8 | return() 9 | endif() 10 | 11 | set(WrapJasper_FOUND OFF) 12 | find_package(Jasper) 13 | 14 | if(Jasper_FOUND) 15 | set(WrapJasper_FOUND ON) 16 | 17 | # Upstream package does not provide targets, only variables. So define a target. 18 | add_library(WrapJasper::WrapJasper INTERFACE IMPORTED) 19 | target_link_libraries(WrapJasper::WrapJasper INTERFACE ${JASPER_LIBRARIES}) 20 | target_include_directories(WrapJasper::WrapJasper INTERFACE ${JASPER_INCLUDE_DIR}) 21 | endif() 22 | -------------------------------------------------------------------------------- /coin/axivion/ci_config_linux.json: -------------------------------------------------------------------------------- 1 | { 2 | "Project": { 3 | "BuildSystemIntegration": { 4 | "child_order": [ 5 | "GCCSetup", 6 | "CMake", 7 | "LinkLibraries" 8 | ] 9 | }, 10 | "CMake": { 11 | "_active": true, 12 | "_copy_from": "CMakeIntegration", 13 | "build_environment": {}, 14 | "build_options": "-j4", 15 | "generate_options": "--fresh", 16 | "generator": "Ninja" 17 | }, 18 | "GCCSetup": { 19 | "_active": true, 20 | "_copy_from": "Command", 21 | "build_command": "gccsetup --cc gcc --cxx g++ --config ../../../axivion/" 22 | }, 23 | "LinkLibraries": { 24 | "_active": true, 25 | "_copy_from": "AxivionLinker", 26 | "input_files": [ 27 | "build/plugins/*/lib*.so*.ir" 28 | ], 29 | "ir": "build/$(env:TESTED_MODULE_COIN).ir" 30 | } 31 | }, 32 | "_Format": "1.0", 33 | "_Version": "7.6.2", 34 | "_VersionNum": [ 35 | 7, 36 | 6, 37 | 2, 38 | 12725 39 | ] 40 | } 41 | -------------------------------------------------------------------------------- /coin/module_config.yaml: -------------------------------------------------------------------------------- 1 | version: 2 2 | accept_configuration: 3 | condition: property 4 | property: features 5 | not_contains_value: Disable 6 | 7 | instructions: 8 | Build: 9 | - type: EnvironmentVariable 10 | variableName: VERIFY_SOURCE_SBOM 11 | variableValue: "ON" 12 | - !include "{{qt/qtbase}}/coin_module_build_template_v2.yaml" 13 | 14 | Test: 15 | - !include "{{qt/qtbase}}/coin_module_test_template_v3.yaml" 16 | - !include "{{qt/qtbase}}/coin_module_test_docs.yaml" 17 | -------------------------------------------------------------------------------- /config_help.txt: -------------------------------------------------------------------------------- 1 | Further image format options: 2 | 3 | -jasper .............. Enable JPEG-2000 support using the JasPer library [no] 4 | -mng ................. Enable MNG support [no] 5 | -tiff ................ Enable TIFF support [system/qt/no] 6 | -webp ................ Enable WEBP support [system/qt/no] 7 | -------------------------------------------------------------------------------- /configure.cmake: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2022 The Qt Company Ltd. 2 | # SPDX-License-Identifier: BSD-3-Clause 3 | 4 | 5 | 6 | #### Inputs 7 | 8 | 9 | 10 | #### Libraries 11 | 12 | 13 | 14 | #### Tests 15 | 16 | 17 | 18 | #### Features 19 | 20 | 21 | qt_extra_definition("QT_VERSION_STR" "\"${PROJECT_VERSION}\"" PUBLIC) 22 | qt_extra_definition("QT_VERSION_MAJOR" ${PROJECT_VERSION_MAJOR} PUBLIC) 23 | qt_extra_definition("QT_VERSION_MINOR" ${PROJECT_VERSION_MINOR} PUBLIC) 24 | qt_extra_definition("QT_VERSION_PATCH" ${PROJECT_VERSION_PATCH} PUBLIC) 25 | -------------------------------------------------------------------------------- /dependencies.yaml: -------------------------------------------------------------------------------- 1 | dependencies: 2 | ../qtbase: 3 | ref: 9a950b1ecb901cc885995d128768cc04cb55cfb1 4 | required: true 5 | -------------------------------------------------------------------------------- /dist/REUSE.toml: -------------------------------------------------------------------------------- 1 | version = 1 2 | 3 | [[annotations]] 4 | path = ["*"] 5 | precedence = "override" 6 | comment = "Licensed as documentation." 7 | SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd." 8 | SPDX-License-Identifier = "LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only" 9 | -------------------------------------------------------------------------------- /dist/changes-5.0.1: -------------------------------------------------------------------------------- 1 | Qt 5.0.1 is a bug-fix release. It maintains both forward and backward 2 | compatibility (source and binary) with Qt 5.0.0. 3 | 4 | For more details, refer to the online documentation included in this 5 | distribution. The documentation is also available online: 6 | 7 | http://qt-project.org/doc/qt-5.0/ 8 | 9 | Some of the changes listed in this file include issue tracking numbers 10 | corresponding to tasks in the Qt Bug Tracker: 11 | 12 | http://bugreports.qt-project.org/ 13 | 14 | Each of these identifiers can be entered in the bug tracker to obtain more 15 | information about a particular change. 16 | 17 | 18 | **************************************************************************** 19 | * General * 20 | **************************************************************************** 21 | 22 | General Improvements 23 | -------------------- 24 | 25 | Third party components 26 | ---------------------- 27 | 28 | **************************************************************************** 29 | * Library * 30 | **************************************************************************** 31 | 32 | - no changes for this version 33 | 34 | **************************************************************************** 35 | * Platform Specific Changes * 36 | **************************************************************************** 37 | 38 | 39 | **************************************************************************** 40 | * Compiler Specific Changes * 41 | **************************************************************************** 42 | 43 | 44 | **************************************************************************** 45 | * Plugins * 46 | **************************************************************************** 47 | 48 | -------------------------------------------------------------------------------- /dist/changes-5.0.2: -------------------------------------------------------------------------------- 1 | Qt 5.0.2 is a bug-fix release. It maintains both forward and backward 2 | compatibility (source and binary) with Qt 5.0.0 and 5.0.1. 3 | 4 | For more details, refer to the online documentation included in this 5 | distribution. The documentation is also available online: 6 | 7 | http://qt-project.org/doc/qt-5.0/ 8 | 9 | Some of the changes listed in this file include issue tracking numbers 10 | corresponding to tasks in the Qt Bug Tracker: 11 | 12 | http://bugreports.qt-project.org/ 13 | 14 | Each of these identifiers can be entered in the bug tracker to obtain more 15 | information about a particular change. 16 | 17 | 18 | **************************************************************************** 19 | * General * 20 | **************************************************************************** 21 | 22 | - This release contains only minor code improvements. 23 | -------------------------------------------------------------------------------- /dist/changes-5.1.0: -------------------------------------------------------------------------------- 1 | Qt 5.1 introduces many new features and improvements as well as bugfixes 2 | over the 5.0.x series. For more details, refer to the online documentation 3 | included in this distribution. The documentation is also available online: 4 | 5 | http://qt-project.org/doc/qt-5.1 6 | 7 | The Qt version 5.1 series is binary compatible with the 5.0.x series. 8 | Applications compiled for 5.0 will continue to run with 5.1. 9 | 10 | Some of the changes listed in this file include issue tracking numbers 11 | corresponding to tasks in the Qt Bug Tracker: 12 | 13 | http://bugreports.qt-project.org/ 14 | 15 | Each of these identifiers can be entered in the bug tracker to obtain more 16 | information about a particular change. 17 | 18 | **************************************************************************** 19 | * General * 20 | **************************************************************************** 21 | 22 | - This release contains only minor code improvements. 23 | -------------------------------------------------------------------------------- /dist/changes-5.1.1: -------------------------------------------------------------------------------- 1 | Qt 5.1.1 is a bug-fix release. It maintains both forward and backward 2 | compatibility (source and binary) with Qt 5.1.0. 3 | 4 | For more details, refer to the online documentation included in this 5 | distribution. The documentation is also available online: 6 | 7 | http://qt-project.org/doc/qt-5.1/ 8 | 9 | The Qt version 5.1 series is binary compatible with the 5.0.x series. 10 | Applications compiled for 5.0 will continue to run with 5.1. 11 | 12 | Some of the changes listed in this file include issue tracking numbers 13 | corresponding to tasks in the Qt Bug Tracker: 14 | 15 | http://bugreports.qt-project.org/ 16 | 17 | Each of these identifiers can be entered in the bug tracker to obtain more 18 | information about a particular change. 19 | 20 | 21 | **************************************************************************** 22 | * General * 23 | **************************************************************************** 24 | 25 | - This release contains only minor code improvements. 26 | -------------------------------------------------------------------------------- /dist/changes-5.10.0: -------------------------------------------------------------------------------- 1 | Qt 5.10 introduces many new features and improvements as well as bugfixes 2 | over the 5.9.x series. For more details, refer to the online documentation 3 | included in this distribution. The documentation is also available online: 4 | 5 | http://doc.qt.io/qt-5/index.html 6 | 7 | The Qt version 5.10 series is binary compatible with the 5.10.x series. 8 | Applications compiled for 5.9 will continue to run with 5.10. 9 | 10 | Some of the changes listed in this file include issue tracking numbers 11 | corresponding to tasks in the Qt Bug Tracker: 12 | 13 | https://bugreports.qt.io/ 14 | 15 | Each of these identifiers can be entered in the bug tracker to obtain more 16 | information about a particular change. 17 | 18 | **************************************************************************** 19 | * Qt 5.10.0 Changes * 20 | **************************************************************************** 21 | 22 | - This release contains only minor code improvements. 23 | 24 | Third-Party Code 25 | ---------------- 26 | 27 | - Bundled libtiff was updated to version 4.0.8+ 28 | -------------------------------------------------------------------------------- /dist/changes-5.10.1: -------------------------------------------------------------------------------- 1 | Qt 5.10.1 is a bug-fix release. It maintains both forward and backward 2 | compatibility (source and binary) with Qt 5.10.0. 3 | 4 | For more details, refer to the online documentation included in this 5 | distribution. The documentation is also available online: 6 | 7 | http://doc.qt.io/qt-5/index.html 8 | 9 | The Qt version 5.10 series is binary compatible with the 5.9.x series. 10 | Applications compiled for 5.9 will continue to run with 5.10. 11 | 12 | Some of the changes listed in this file include issue tracking numbers 13 | corresponding to tasks in the Qt Bug Tracker: 14 | 15 | https://bugreports.qt.io/ 16 | 17 | Each of these identifiers can be entered in the bug tracker to obtain more 18 | information about a particular change. 19 | 20 | This release contains all fixes included in the Qt 5.9.4 release. 21 | 22 | **************************************************************************** 23 | * Qt 5.10.1 Changes * 24 | **************************************************************************** 25 | 26 | - This release contains only minor code improvements. 27 | -------------------------------------------------------------------------------- /dist/changes-5.11.0: -------------------------------------------------------------------------------- 1 | Qt 5.11 introduces many new features and improvements as well as bugfixes 2 | over the 5.10.x series. For more details, refer to the online documentation 3 | included in this distribution. The documentation is also available online: 4 | 5 | http://doc.qt.io/qt-5/index.html 6 | 7 | The Qt version 5.11 series is binary compatible with the 5.10.x series. 8 | Applications compiled for 5.10 will continue to run with 5.11. 9 | 10 | Some of the changes listed in this file include issue tracking numbers 11 | corresponding to tasks in the Qt Bug Tracker: 12 | 13 | https://bugreports.qt.io/ 14 | 15 | Each of these identifiers can be entered in the bug tracker to obtain more 16 | information about a particular change. 17 | 18 | **************************************************************************** 19 | * Qt 5.11.0 Changes * 20 | **************************************************************************** 21 | 22 | Third-Party Code 23 | ---------------- 24 | 25 | - Bundled libwebp was updated to version 0.6.1 26 | 27 | Native Darwin jp2 and heic handlers 28 | ----------------------------------- 29 | 30 | - iOS support fixed 31 | -------------------------------------------------------------------------------- /dist/changes-5.11.1: -------------------------------------------------------------------------------- 1 | Qt 5.11.1 is a bug-fix release. It maintains both forward and backward 2 | compatibility (source and binary) with Qt 5.11.0. 3 | 4 | For more details, refer to the online documentation included in this 5 | distribution. The documentation is also available online: 6 | 7 | http://doc.qt.io/qt-5/index.html 8 | 9 | The Qt version 5.11 series is binary compatible with the 5.10.x series. 10 | Applications compiled for 5.10 will continue to run with 5.11. 11 | 12 | Some of the changes listed in this file include issue tracking numbers 13 | corresponding to tasks in the Qt Bug Tracker: 14 | 15 | https://bugreports.qt.io/ 16 | 17 | Each of these identifiers can be entered in the bug tracker to obtain more 18 | information about a particular change. 19 | 20 | **************************************************************************** 21 | * Qt 5.11.1 Changes * 22 | **************************************************************************** 23 | 24 | **************************************************************************** 25 | * TIFF * 26 | **************************************************************************** 27 | 28 | - [QTBUG-68609] Ensure saved tiffs have suitable ROWSPERSTRIP tag set 29 | 30 | **************************************************************************** 31 | * Third-Party Code * 32 | **************************************************************************** 33 | 34 | - Update bundled libwebp to version 1.0.0. 35 | -------------------------------------------------------------------------------- /dist/changes-5.11.2: -------------------------------------------------------------------------------- 1 | Qt 5.11.2 is a bug-fix release. It maintains both forward and backward 2 | compatibility (source and binary) with Qt 5.11.0 through 5.11.1. 3 | 4 | For more details, refer to the online documentation included in this 5 | distribution. The documentation is also available online: 6 | 7 | http://doc.qt.io/qt-5/index.html 8 | 9 | The Qt version 5.11 series is binary compatible with the 5.10.x series. 10 | Applications compiled for 5.10 will continue to run with 5.11. 11 | 12 | Some of the changes listed in this file include issue tracking numbers 13 | corresponding to tasks in the Qt Bug Tracker: 14 | 15 | https://bugreports.qt.io/ 16 | 17 | Each of these identifiers can be entered in the bug tracker to obtain more 18 | information about a particular change. 19 | 20 | **************************************************************************** 21 | * Qt 5.11.2 Changes * 22 | **************************************************************************** 23 | 24 | - This release contains only minor code improvements. 25 | -------------------------------------------------------------------------------- /dist/changes-5.11.3: -------------------------------------------------------------------------------- 1 | Qt 5.11.3 is a bug-fix release. It maintains both forward and backward 2 | compatibility (source and binary) with Qt 5.11.0 through 5.11.2. 3 | 4 | For more details, refer to the online documentation included in this 5 | distribution. The documentation is also available online: 6 | 7 | http://doc.qt.io/qt-5/index.html 8 | 9 | The Qt version 5.11 series is binary compatible with the 5.10.x series. 10 | Applications compiled for 5.10 will continue to run with 5.11. 11 | 12 | Some of the changes listed in this file include issue tracking numbers 13 | corresponding to tasks in the Qt Bug Tracker: 14 | 15 | https://bugreports.qt.io/ 16 | 17 | Each of these identifiers can be entered in the bug tracker to obtain more 18 | information about a particular change. 19 | 20 | 21 | **************************************************************************** 22 | * Third-party Code * 23 | **************************************************************************** 24 | 25 | - Bundled libtiff was updated to version 4.0.10 26 | - Bundled libwebp was updated to version 1.0.1 27 | 28 | **************************************************************************** 29 | * TIFF * 30 | **************************************************************************** 31 | 32 | - Improved strip size setting when writing, for better compression 33 | -------------------------------------------------------------------------------- /dist/changes-5.12.0: -------------------------------------------------------------------------------- 1 | Qt 5.12 introduces many new features and improvements as well as bugfixes 2 | over the 5.11.x series. For more details, refer to the online documentation 3 | included in this distribution. The documentation is also available online: 4 | 5 | https://doc.qt.io/qt-5/index.html 6 | 7 | The Qt version 5.12 series is binary compatible with the 5.11.x series. 8 | Applications compiled for 5.11 will continue to run with 5.12. 9 | 10 | Some of the changes listed in this file include issue tracking numbers 11 | corresponding to tasks in the Qt Bug Tracker: 12 | 13 | https://bugreports.qt.io/ 14 | 15 | Each of these identifiers can be entered in the bug tracker to obtain more 16 | information about a particular change. 17 | 18 | **************************************************************************** 19 | * TIFF * 20 | **************************************************************************** 21 | 22 | - A number of security-related upstream patches has been applied to the 23 | bundled libtiff 24 | - Added reading support for 16 bits per channel (rgb48/rgba64) files 25 | - [QTBUG-70820] Larger strip size when writing, for improved compression 26 | 27 | **************************************************************************** 28 | * WebP * 29 | **************************************************************************** 30 | 31 | - [QTBUG-48628] Retain non-alpha format on reading and writing. 32 | - Use default compression setting for lossless (quality==100) writing 33 | 34 | **************************************************************************** 35 | * Third-Party Code * 36 | **************************************************************************** 37 | 38 | - The unmaintained bundled libmng has been removed. Building the mng 39 | handler will require libmng to be present as a system or external 40 | library. 41 | - The unmaintained bundled libjasper has been removed. Building the jp2 42 | handler will require libjasper to be present as a system or external 43 | library. 44 | -------------------------------------------------------------------------------- /dist/changes-5.12.1: -------------------------------------------------------------------------------- 1 | Qt 5.12.1 is a bug-fix release. It maintains both forward and backward 2 | compatibility (source and binary) with Qt 5.12.0. 3 | 4 | For more details, refer to the online documentation included in this 5 | distribution. The documentation is also available online: 6 | 7 | http://doc.qt.io/qt-5/index.html 8 | 9 | The Qt version 5.12 series is binary compatible with the 5.11.x series. 10 | Applications compiled for 5.11 will continue to run with 5.12. 11 | 12 | Some of the changes listed in this file include issue tracking numbers 13 | corresponding to tasks in the Qt Bug Tracker: 14 | 15 | https://bugreports.qt.io/ 16 | 17 | Each of these identifiers can be entered in the bug tracker to obtain more 18 | information about a particular change. 19 | 20 | **************************************************************************** 21 | * Third-Party Code * 22 | **************************************************************************** 23 | 24 | - Update bundled libwebp to version 1.0.1 25 | - Bundled libtiff was updated to version 4.0.10 26 | -------------------------------------------------------------------------------- /dist/changes-5.12.10: -------------------------------------------------------------------------------- 1 | Qt 5.12.10 is a bug-fix release. It maintains both forward and backward 2 | compatibility (source and binary) with Qt 5.12.9. 3 | 4 | For more details, refer to the online documentation included in this 5 | distribution. The documentation is also available online: 6 | 7 | https://doc.qt.io/qt-5.12/index.html 8 | 9 | The Qt version 5.12 series is binary compatible with the 5.11.x series. 10 | Applications compiled for 5.11 will continue to run with 5.12. 11 | 12 | Some of the changes listed in this file include issue tracking numbers 13 | corresponding to tasks in the Qt Bug Tracker: 14 | 15 | https://bugreports.qt.io/ 16 | 17 | Each of these identifiers can be entered in the bug tracker to obtain more 18 | information about a particular change. 19 | 20 | **************************************************************************** 21 | * Library * 22 | **************************************************************************** 23 | 24 | - This release contains only minor code improvements. 25 | -------------------------------------------------------------------------------- /dist/changes-5.12.2: -------------------------------------------------------------------------------- 1 | Qt 5.12.2 is a bug-fix release. It maintains both forward and backward 2 | compatibility (source and binary) with Qt 5.12.0 through 5.12.1. 3 | 4 | For more details, refer to the online documentation included in this 5 | distribution. The documentation is also available online: 6 | 7 | https://doc.qt.io/qt-5/index.html 8 | 9 | The Qt version 5.12 series is binary compatible with the 5.11.x series. 10 | Applications compiled for 5.11 will continue to run with 5.12. 11 | 12 | Some of the changes listed in this file include issue tracking numbers 13 | corresponding to tasks in the Qt Bug Tracker: 14 | 15 | https://bugreports.qt.io/ 16 | 17 | Each of these identifiers can be entered in the bug tracker to obtain more 18 | information about a particular change. 19 | 20 | **************************************************************************** 21 | * Third-Party Code * 22 | **************************************************************************** 23 | 24 | - Update bundled libwebp to version 1.0.2 25 | -------------------------------------------------------------------------------- /dist/changes-5.12.3: -------------------------------------------------------------------------------- 1 | Qt 5.12.3 is a bug-fix release. It maintains both forward and backward 2 | compatibility (source and binary) with Qt 5.12.0 through 5.12.2. 3 | 4 | For more details, refer to the online documentation included in this 5 | distribution. The documentation is also available online: 6 | 7 | https://doc.qt.io/qt-5/index.html 8 | 9 | The Qt version 5.12 series is binary compatible with the 5.11.x series. 10 | Applications compiled for 5.11 will continue to run with 5.12. 11 | 12 | Some of the changes listed in this file include issue tracking numbers 13 | corresponding to tasks in the Qt Bug Tracker: 14 | 15 | https://bugreports.qt.io/ 16 | 17 | Each of these identifiers can be entered in the bug tracker to obtain more 18 | information about a particular change. 19 | 20 | **************************************************************************** 21 | * HEIC (macOS/iOS) * 22 | **************************************************************************** 23 | 24 | - Support for Size and Transformation image properties have been 25 | added, so these can be queried through QImageReader prior to 26 | reading the image. Automatic transformation is enabled, so images 27 | that are stored rotated will by default be transformed to normal 28 | orientation on reading. 29 | 30 | - Read images will have their resolution QImage::dotsPerMeterX()/Y() 31 | set according to the values in the file. 32 | -------------------------------------------------------------------------------- /dist/changes-5.12.4: -------------------------------------------------------------------------------- 1 | Qt 5.12.4 is a bug-fix release. It maintains both forward and backward 2 | compatibility (source and binary) with Qt 5.12.0 through 5.12.3. 3 | 4 | For more details, refer to the online documentation included in this 5 | distribution. The documentation is also available online: 6 | 7 | https://doc.qt.io/qt-5/index.html 8 | 9 | The Qt version 5.12 series is binary compatible with the 5.11.x series. 10 | Applications compiled for 5.11 will continue to run with 5.12. 11 | 12 | Some of the changes listed in this file include issue tracking numbers 13 | corresponding to tasks in the Qt Bug Tracker: 14 | 15 | https://bugreports.qt.io/ 16 | 17 | Each of these identifiers can be entered in the bug tracker to obtain more 18 | information about a particular change. 19 | 20 | **************************************************************************** 21 | * General * 22 | **************************************************************************** 23 | 24 | - The qtimageformats module now offers configuration settings 25 | available in the global Qt configure. The image format handlers 26 | based on external codecs can be enabled or disabled, and the choice 27 | between bundled and system codec library can be set. 28 | 29 | -------------------------------------------------------------------------------- /dist/changes-5.12.5: -------------------------------------------------------------------------------- 1 | Qt 5.12.5 is a bug-fix release. It maintains both forward and backward 2 | compatibility (source and binary) with Qt 5.12.0 through 5.12.4. 3 | 4 | For more details, refer to the online documentation included in this 5 | distribution. The documentation is also available online: 6 | 7 | https://doc.qt.io/qt-5/index.html 8 | 9 | The Qt version 5.12 series is binary compatible with the 5.11.x series. 10 | Applications compiled for 5.11 will continue to run with 5.12. 11 | 12 | Some of the changes listed in this file include issue tracking numbers 13 | corresponding to tasks in the Qt Bug Tracker: 14 | 15 | https://bugreports.qt.io/ 16 | 17 | Each of these identifiers can be entered in the bug tracker to obtain more 18 | information about a particular change. 19 | 20 | **************************************************************************** 21 | * Third-Party Code * 22 | **************************************************************************** 23 | 24 | - Update bundled libwebp to version 1.0.3 25 | -------------------------------------------------------------------------------- /dist/changes-5.13.0: -------------------------------------------------------------------------------- 1 | Qt 5.13 introduces many new features and improvements as well as bugfixes 2 | over the 5.12.x series. For more details, refer to the online documentation 3 | included in this distribution. The documentation is also available online: 4 | 5 | https://doc.qt.io/qt-5/index.html 6 | 7 | The Qt version 5.13 series is binary compatible with the 5.12.x series. 8 | Applications compiled for 5.12 will continue to run with 5.13. 9 | 10 | Some of the changes listed in this file include issue tracking numbers 11 | corresponding to tasks in the Qt Bug Tracker: 12 | 13 | https://bugreports.qt.io/ 14 | 15 | Each of these identifiers can be entered in the bug tracker to obtain more 16 | information about a particular change. 17 | 18 | **************************************************************************** 19 | * General * 20 | **************************************************************************** 21 | 22 | - The qtimageformats module now offers configuration settings 23 | available in the global Qt configure. The image format handlers 24 | based on external codecs can be enabled or disabled, and the choice 25 | between bundled and system codec library can be set. 26 | 27 | **************************************************************************** 28 | * TIFF * 29 | **************************************************************************** 30 | 31 | - Support for reading and writing images in Grayscale16 format added. 32 | -------------------------------------------------------------------------------- /dist/changes-5.13.1: -------------------------------------------------------------------------------- 1 | Qt 5.13.1 is a bug-fix release. It maintains both forward and backward 2 | compatibility (source and binary) with Qt 5.13.0. 3 | 4 | For more details, refer to the online documentation included in this 5 | distribution. The documentation is also available online: 6 | 7 | https://doc.qt.io/qt-5/index.html 8 | 9 | The Qt version 5.13 series is binary compatible with the 5.12.x series. 10 | Applications compiled for 5.12 will continue to run with 5.13. 11 | 12 | Some of the changes listed in this file include issue tracking numbers 13 | corresponding to tasks in the Qt Bug Tracker: 14 | 15 | https://bugreports.qt.io/ 16 | 17 | Each of these identifiers can be entered in the bug tracker to obtain more 18 | information about a particular change. 19 | 20 | **************************************************************************** 21 | * Third-Party Code * 22 | **************************************************************************** 23 | 24 | - Update bundled libwebp to version 1.0.3 25 | -------------------------------------------------------------------------------- /dist/changes-5.13.2: -------------------------------------------------------------------------------- 1 | Qt 5.13.2 is a bug-fix release. It maintains both forward and backward 2 | compatibility (source and binary) with Qt 5.13.0 through 5.13.1. 3 | 4 | For more details, refer to the online documentation included in this 5 | distribution. The documentation is also available online: 6 | 7 | https://doc.qt.io/qt-5/index.html 8 | 9 | The Qt version 5.13 series is binary compatible with the 5.12.x series. 10 | Applications compiled for 5.12 will continue to run with 5.13. 11 | 12 | Some of the changes listed in this file include issue tracking numbers 13 | corresponding to tasks in the Qt Bug Tracker: 14 | 15 | https://bugreports.qt.io/ 16 | 17 | Each of these identifiers can be entered in the bug tracker to obtain more 18 | information about a particular change. 19 | 20 | **************************************************************************** 21 | * TIFF * 22 | **************************************************************************** 23 | 24 | - Two security-related upstream patches has been applied to the 25 | bundled libtiff 26 | -------------------------------------------------------------------------------- /dist/changes-5.14.0: -------------------------------------------------------------------------------- 1 | Qt 5.14 introduces many new features and improvements as well as bugfixes 2 | over the 5.13.x series. For more details, refer to the online documentation 3 | included in this distribution. The documentation is also available online: 4 | 5 | https://doc.qt.io/qt-5/index.html 6 | 7 | The Qt version 5.14 series is binary compatible with the 5.13.x series. 8 | Applications compiled for 5.13 will continue to run with 5.14. 9 | 10 | Some of the changes listed in this file include issue tracking numbers 11 | corresponding to tasks in the Qt Bug Tracker: 12 | 13 | https://bugreports.qt.io/ 14 | 15 | Each of these identifiers can be entered in the bug tracker to obtain more 16 | information about a particular change. 17 | 18 | **************************************************************************** 19 | * TIFF * 20 | **************************************************************************** 21 | 22 | - Added support for reading and writing colorspace profiles 23 | - Corrected 16 to 8 bit color channel conversion when reading color maps 24 | 25 | **************************************************************************** 26 | * WEBP * 27 | **************************************************************************** 28 | 29 | - Added support for reading and writing colorspace profiles 30 | 31 | **************************************************************************** 32 | * Third-Party Code * 33 | **************************************************************************** 34 | 35 | - Bundled libtiff was updated to version 4.1.0 36 | -------------------------------------------------------------------------------- /dist/changes-5.14.1: -------------------------------------------------------------------------------- 1 | Qt 5.14.1 is a bug-fix release. It maintains both forward and backward 2 | compatibility (source and binary) with Qt 5.14.0. 3 | 4 | For more details, refer to the online documentation included in this 5 | distribution. The documentation is also available online: 6 | 7 | https://doc.qt.io/qt-5/index.html 8 | 9 | The Qt version 5.14 series is binary compatible with the 5.13.x series. 10 | Applications compiled for 5.13 will continue to run with 5.14. 11 | 12 | Some of the changes listed in this file include issue tracking numbers 13 | corresponding to tasks in the Qt Bug Tracker: 14 | 15 | https://bugreports.qt.io/ 16 | 17 | Each of these identifiers can be entered in the bug tracker to obtain more 18 | information about a particular change. 19 | 20 | - This release contains only minor code improvements. 21 | -------------------------------------------------------------------------------- /dist/changes-5.14.2: -------------------------------------------------------------------------------- 1 | Qt 5.14.2 is a bug-fix release. It maintains both forward and backward 2 | compatibility (source and binary) with Qt 5.14.0 through 5.14.1. 3 | 4 | For more details, refer to the online documentation included in this 5 | distribution. The documentation is also available online: 6 | 7 | https://doc.qt.io/qt-5/index.html 8 | 9 | The Qt version 5.14 series is binary compatible with the 5.13.x series. 10 | Applications compiled for 5.13 will continue to run with 5.14. 11 | 12 | Some of the changes listed in this file include issue tracking numbers 13 | corresponding to tasks in the Qt Bug Tracker: 14 | 15 | https://bugreports.qt.io/ 16 | 17 | Each of these identifiers can be entered in the bug tracker to obtain more 18 | information about a particular change. 19 | 20 | - This release contains only minor code improvements. 21 | -------------------------------------------------------------------------------- /dist/changes-5.15.0: -------------------------------------------------------------------------------- 1 | Qt 5.15 introduces many new features and improvements as well as bugfixes 2 | over the 5.14.x series. For more details, refer to the online documentation 3 | included in this distribution. The documentation is also available online: 4 | 5 | https://doc.qt.io/qt-5/index.html 6 | 7 | The Qt version 5.15 series is binary compatible with the 5.14.x series. 8 | Applications compiled for 5.14 will continue to run with 5.15. 9 | 10 | Some of the changes listed in this file include issue tracking numbers 11 | corresponding to tasks in the Qt Bug Tracker: 12 | 13 | https://bugreports.qt.io/ 14 | 15 | Each of these identifiers can be entered in the bug tracker to obtain more 16 | information about a particular change. 17 | 18 | **************************************************************************** 19 | * TIFF * 20 | **************************************************************************** 21 | 22 | - Add support for reading BigTIFF 23 | 24 | **************************************************************************** 25 | * Third-Party Code * 26 | **************************************************************************** 27 | 28 | - Update bundled libwebp to version 1.1.0 29 | -------------------------------------------------------------------------------- /dist/changes-5.15.1: -------------------------------------------------------------------------------- 1 | Qt 5.15.1 is a bug-fix release. It maintains both forward and backward 2 | compatibility (source and binary) with Qt 5.15.0. 3 | 4 | For more details, refer to the online documentation included in this 5 | distribution. The documentation is also available online: 6 | 7 | https://doc.qt.io/qt-5/index.html 8 | 9 | The Qt version 5.15 series is binary compatible with the 5.14.x series. 10 | Applications compiled for 5.14 will continue to run with 5.15. 11 | 12 | Some of the changes listed in this file include issue tracking numbers 13 | corresponding to tasks in the Qt Bug Tracker: 14 | 15 | https://bugreports.qt.io/ 16 | 17 | Each of these identifiers can be entered in the bug tracker to obtain more 18 | information about a particular change. 19 | 20 | - This release contains only minor code improvements. 21 | -------------------------------------------------------------------------------- /dist/changes-5.15.2: -------------------------------------------------------------------------------- 1 | Qt 5.15.2 is a bug-fix release. It maintains both forward and backward 2 | compatibility (source and binary) with Qt 5.15.1. 3 | 4 | For more details, refer to the online documentation included in this 5 | distribution. The documentation is also available online: 6 | 7 | https://doc.qt.io/qt-5.15/index.html 8 | 9 | The Qt version 5.15 series is binary compatible with the 5.14.x series. 10 | Applications compiled for 5.14 will continue to run with 5.15. 11 | 12 | Some of the changes listed in this file include issue tracking numbers 13 | corresponding to tasks in the Qt Bug Tracker: 14 | 15 | https://bugreports.qt.io/ 16 | 17 | Each of these identifiers can be entered in the bug tracker to obtain more 18 | information about a particular change. 19 | 20 | - This release contains only minor code improvements. 21 | -------------------------------------------------------------------------------- /dist/changes-5.3.0: -------------------------------------------------------------------------------- 1 | Qt 5.3 introduces many new features and improvements as well as bugfixes 2 | over the 5.2.x series. For more details, refer to the online documentation 3 | included in this distribution. The documentation is also available online: 4 | 5 | http://qt-project.org/doc/qt-5.3 6 | 7 | The Qt version 5.3 series is binary compatible with the 5.2.x series. 8 | Applications compiled for 5.2 will continue to run with 5.3. 9 | 10 | Some of the changes listed in this file include issue tracking numbers 11 | corresponding to tasks in the Qt Bug Tracker: 12 | 13 | http://bugreports.qt-project.org/ 14 | 15 | Each of these identifiers can be entered in the bug tracker to obtain more 16 | information about a particular change. 17 | 18 | **************************************************************************** 19 | * General * 20 | **************************************************************************** 21 | 22 | - Add read/write support for Direct Draw Surface images. 23 | - Add read/write support for ICNS images. 24 | - Add read/write support for JPEG 2000 images. 25 | - Add read/write support for WebP images. 26 | -------------------------------------------------------------------------------- /dist/changes-5.4.0: -------------------------------------------------------------------------------- 1 | Qt 5.4 introduces many new features and improvements as well as bugfixes 2 | over the 5.3.x series. For more details, refer to the online documentation 3 | included in this distribution. The documentation is also available online: 4 | 5 | http://qt-project.org/doc/qt-5.4 6 | 7 | The Qt version 5.4 series is binary compatible with the 5.3.x series. 8 | Applications compiled for 5.3 will continue to run with 5.4. 9 | 10 | Some of the changes listed in this file include issue tracking numbers 11 | corresponding to tasks in the Qt Bug Tracker: 12 | 13 | http://bugreports.qt-project.org/ 14 | 15 | Each of these identifiers can be entered in the bug tracker to obtain more 16 | information about a particular change. 17 | 18 | **************************************************************************** 19 | * General * 20 | **************************************************************************** 21 | 22 | - Add support for reading icon variants in ICNS plugin 23 | - Save opaque images as opaque TIFF files 24 | - Add support for SubType and SupportedSubTypes options in DDS handler 25 | - QTBUG-42321: Fix crash in MNG reader when invoked by QIcon 26 | - Disable webp also for ios, as libwebp has compile issues on arm 27 | -------------------------------------------------------------------------------- /dist/changes-5.5.0: -------------------------------------------------------------------------------- 1 | Qt 5.5 introduces many new features and improvements as well as bugfixes 2 | over the 5.4.x series. For more details, refer to the online documentation 3 | included in this distribution. The documentation is also available online: 4 | 5 | http://doc.qt.io 6 | 7 | The Qt version 5.5 series is binary compatible with the 5.4.x series. 8 | Applications compiled for 5.4 will continue to run with 5.5. 9 | 10 | Some of the changes listed in this file include issue tracking numbers 11 | corresponding to tasks in the Qt Bug Tracker: 12 | 13 | http://bugreports.qt.io 14 | 15 | Each of these identifiers can be entered in the bug tracker to obtain more 16 | information about a particular change. 17 | 18 | **************************************************************************** 19 | * General * 20 | **************************************************************************** 21 | 22 | - Read grayscale JPEG 2000 images as grayscale QImages 23 | - Fix a number of compilation warnings 24 | - Update bundled libwebp to version 0.4.3 25 | - Correctly interpret RGBA tiff images as premultiplied 26 | - Optional application of orientation for TIFF 27 | - QTBUG-38715: Build webp plugin on Android 28 | - Correctly read and write Grayscale8 TIFF 29 | -------------------------------------------------------------------------------- /dist/changes-5.6.0: -------------------------------------------------------------------------------- 1 | Qt 5.6 introduces many new features and improvements as well as bugfixes 2 | over the 5.5.x series. For more details, refer to the online documentation 3 | included in this distribution. The documentation is also available online: 4 | 5 | http://doc.qt.io 6 | 7 | The Qt version 5.6 series is binary compatible with the 5.5.x series. 8 | Applications compiled for 5.5 will continue to run with 5.6. 9 | 10 | Some of the changes listed in this file include issue tracking numbers 11 | corresponding to tasks in the Qt Bug Tracker: 12 | 13 | http://bugreports.qt.io 14 | 15 | Each of these identifiers can be entered in the bug tracker to obtain more 16 | information about a particular change. 17 | 18 | **************************************************************************** 19 | * Important Behavior Changes * 20 | **************************************************************************** 21 | 22 | - For security reasons, MNG and JPEG 2000 handlers will no longer be 23 | built by default, unless the required codec library is found on the 24 | system. I.e., the bundled 3rd party libraries will by default not be 25 | used. In practice, this means that the qmng and qjp2 handlers will 26 | not be present by default. 27 | 28 | The reason is that upstream development of those codes libraries has 29 | stalled, so security issues are not addressed. 30 | 31 | Users who still want these handlers using the bundled libraries can 32 | easily build them from the source projects: 33 | src/plugins/imageformats/jp2/jp2.pro 34 | src/plugins/imageformats/mng/mng.pro 35 | 36 | **************************************************************************** 37 | * General * 38 | **************************************************************************** 39 | 40 | - Bundled libwebp updated to version 0.4.4. 41 | - Bundled libtiff updated to version 4.0.6. 42 | -------------------------------------------------------------------------------- /dist/changes-5.6.3: -------------------------------------------------------------------------------- 1 | Qt 5.6.3 is a bug-fix release. It maintains both forward and backward 2 | compatibility (source and binary) with Qt 5.6.0. 3 | 4 | For more details, refer to the online documentation included in this 5 | distribution. The documentation is also available online: 6 | 7 | http://doc.qt.io/qt-5/index.html 8 | 9 | The Qt version 5.6 series is binary compatible with the 5.5.x series. 10 | Applications compiled for 5.5 will continue to run with 5.6. 11 | 12 | Some of the changes listed in this file include issue tracking numbers 13 | corresponding to tasks in the Qt Bug Tracker: 14 | 15 | https://bugreports.qt.io/ 16 | 17 | Each of these identifiers can be entered in the bug tracker to obtain more 18 | information about a particular change. 19 | 20 | **************************************************************************** 21 | * Important Behavior Changes * 22 | **************************************************************************** 23 | 24 | - For security reasons, the DDS handler will no longer be built by 25 | default. Users who still want this handler can build it from the 26 | source project. 27 | -------------------------------------------------------------------------------- /dist/changes-5.7.0: -------------------------------------------------------------------------------- 1 | Qt 5.7 introduces many new features and improvements as well as bugfixes 2 | over the 5.6.x series. Also, there is a change in the licensing terms. 3 | For more details, refer to the online documentation included in this 4 | distribution. The documentation is also available online: 5 | 6 | http://doc.qt.io/qt-5/index.html 7 | 8 | The Qt version 5.7 series is binary compatible with the 5.6.x series. 9 | Applications compiled for 5.6 will continue to run with 5.7. 10 | 11 | Some of the changes listed in this file include issue tracking numbers 12 | corresponding to tasks in the Qt Bug Tracker: 13 | 14 | http://bugreports.qt.io 15 | 16 | Each of these identifiers can be entered in the bug tracker to obtain more 17 | information about a particular change. 18 | 19 | **************************************************************************** 20 | * Important License Changes * 21 | **************************************************************************** 22 | 23 | This module is no longer available under LGPLv2.1. The libraries are 24 | now available under the following licenses: 25 | * Commercial License 26 | * GNU General Public License v2.0 (LICENSE.GPL2) and later 27 | * GNU Lesser General Public License v3.0 (LICENSE.LGPL3) 28 | 29 | The tools are now available under the following licenses: 30 | * Commercial License 31 | * GNU General Public License 3.0 (LICENSE.GPL3) with exceptions 32 | described in The Qt Company GPL Exception 1.0 (LICENSE.GPL3-EXCEPT) 33 | 34 | **************************************************************************** 35 | * General * 36 | **************************************************************************** 37 | 38 | - A new JPEG 2000 plugin for OS X added, utilizing native codec framework 39 | - Bundled libwebp updated to version 0.5.0. 40 | - Issue fixed where TIFF alpha channel could be misread 41 | -------------------------------------------------------------------------------- /dist/changes-5.8.0: -------------------------------------------------------------------------------- 1 | Qt 5.8 introduces many new features and improvements as well as bugfixes 2 | over the 5.7.x series. For more details, refer to the online documentation 3 | included in this distribution. The documentation is also available online: 4 | 5 | http://doc.qt.io/qt-5/index.html 6 | 7 | The Qt version 5.8 series is binary compatible with the 5.7.x series. 8 | Applications compiled for 5.7 will continue to run with 5.8. 9 | 10 | Some of the changes listed in this file include issue tracking numbers 11 | corresponding to tasks in the Qt Bug Tracker: 12 | 13 | https://bugreports.qt.io/ 14 | 15 | Each of these identifiers can be entered in the bug tracker to obtain more 16 | information about a particular change. 17 | 18 | QtImageFormats 19 | -------------- 20 | 21 | - For security reasons, the DDS handler will no longer be built by 22 | default. Users who still want this handler can build it from the 23 | source project. 24 | 25 | TGA 26 | --- 27 | 28 | - Fixed reading of TGA-16 formats. 29 | -------------------------------------------------------------------------------- /dist/changes-5.9.0: -------------------------------------------------------------------------------- 1 | Qt 5.9 introduces many new features and improvements as well as bugfixes 2 | over the 5.8.x series. For more details, refer to the online documentation 3 | included in this distribution. The documentation is also available online: 4 | 5 | http://doc.qt.io/qt-5/index.html 6 | 7 | The Qt version 5.9 series is binary compatible with the 5.8.x series. 8 | Applications compiled for 5.8 will continue to run with 5.9. 9 | 10 | Some of the changes listed in this file include issue tracking numbers 11 | corresponding to tasks in the Qt Bug Tracker: 12 | 13 | https://bugreports.qt.io/ 14 | 15 | Each of these identifiers can be entered in the bug tracker to obtain more 16 | information about a particular change. 17 | 18 | Third-Party Code 19 | ---------------- 20 | 21 | - Update the bundled libwebp to version 0.6.0. 22 | 23 | TIFF handler 24 | -------------- 25 | 26 | - Add support for reading color indexed and grayscale images stored 27 | in tiled format. 28 | -------------------------------------------------------------------------------- /dist/changes-5.9.1: -------------------------------------------------------------------------------- 1 | Qt 5.9.1 is a bug-fix release. It maintains both forward and backward 2 | compatibility (source and binary) with Qt 5.9.0. 3 | 4 | For more details, refer to the online documentation included in this 5 | distribution. The documentation is also available online: 6 | 7 | http://doc.qt.io/qt-5/index.html 8 | 9 | The Qt version 5.9 series is binary compatible with the 5.8.x series. 10 | Applications compiled for 5.8 will continue to run with 5.9. 11 | 12 | Some of the changes listed in this file include issue tracking numbers 13 | corresponding to tasks in the Qt Bug Tracker: 14 | 15 | https://bugreports.qt.io/ 16 | 17 | Each of these identifiers can be entered in the bug tracker to obtain more 18 | information about a particular change. 19 | 20 | **************************************************************************** 21 | * Library * 22 | **************************************************************************** 23 | 24 | - This release contains only minor code improvements. 25 | -------------------------------------------------------------------------------- /dist/changes-5.9.2: -------------------------------------------------------------------------------- 1 | Qt 5.9.2 is a bug-fix release. It maintains both forward and backward 2 | compatibility (source and binary) with Qt 5.9.0. 3 | 4 | For more details, refer to the online documentation included in this 5 | distribution. The documentation is also available online: 6 | 7 | http://doc.qt.io/qt-5/index.html 8 | 9 | The Qt version 5.9 series is binary compatible with the 5.8.x series. 10 | Applications compiled for 5.8 will continue to run with 5.9. 11 | 12 | Some of the changes listed in this file include issue tracking numbers 13 | corresponding to tasks in the Qt Bug Tracker: 14 | 15 | https://bugreports.qt.io/ 16 | 17 | Each of these identifiers can be entered in the bug tracker to obtain more 18 | information about a particular change. 19 | 20 | **************************************************************************** 21 | * Qt 5.9.2 Changes * 22 | **************************************************************************** 23 | 24 | - Minor bugfixes for animated webp images. 25 | -------------------------------------------------------------------------------- /dist/changes-5.9.3: -------------------------------------------------------------------------------- 1 | Qt 5.9.3 is a bug-fix release. It maintains both forward and backward 2 | compatibility (source and binary) with Qt 5.9.0. 3 | 4 | For more details, refer to the online documentation included in this 5 | distribution. The documentation is also available online: 6 | 7 | http://doc.qt.io/qt-5/index.html 8 | 9 | The Qt version 5.9 series is binary compatible with the 5.8.x series. 10 | Applications compiled for 5.8 will continue to run with 5.9. 11 | 12 | Some of the changes listed in this file include issue tracking numbers 13 | corresponding to tasks in the Qt Bug Tracker: 14 | 15 | https://bugreports.qt.io/ 16 | 17 | Each of these identifiers can be entered in the bug tracker to obtain more 18 | information about a particular change. 19 | 20 | **************************************************************************** 21 | * Qt 5.9.3 Changes * 22 | **************************************************************************** 23 | 24 | - Bundled libtiff updated to version 4.0.8+. 25 | -------------------------------------------------------------------------------- /dist/changes-5.9.4: -------------------------------------------------------------------------------- 1 | Qt 5.9.4 is a bug-fix release. It maintains both forward and backward 2 | compatibility (source and binary) with Qt 5.9.0. 3 | 4 | For more details, refer to the online documentation included in this 5 | distribution. The documentation is also available online: 6 | 7 | http://doc.qt.io/qt-5/index.html 8 | 9 | The Qt version 5.9 series is binary compatible with the 5.8.x series. 10 | Applications compiled for 5.8 will continue to run with 5.9. 11 | 12 | Some of the changes listed in this file include issue tracking numbers 13 | corresponding to tasks in the Qt Bug Tracker: 14 | 15 | https://bugreports.qt.io/ 16 | 17 | Each of these identifiers can be entered in the bug tracker to obtain more 18 | information about a particular change. 19 | 20 | **************************************************************************** 21 | * Qt 5.9.4 Changes * 22 | **************************************************************************** 23 | 24 | Third-Party Code 25 | ---------------- 26 | 27 | - Bundled libtiff was updated to version 4.0.9 28 | 29 | WebP handler 30 | ------------ 31 | 32 | - [QTBUG-64437] Fixed default quality level for writing 33 | 34 | Native Darwin jp2 handler 35 | ------------------------- 36 | 37 | - iOS support fixed 38 | -------------------------------------------------------------------------------- /dist/changes-5.9.5: -------------------------------------------------------------------------------- 1 | Qt 5.9.5 is a bug-fix release. It maintains both forward and backward 2 | compatibility (source and binary) with Qt 5.9.0. 3 | 4 | For more details, refer to the online documentation included in this 5 | distribution. The documentation is also available online: 6 | 7 | http://doc.qt.io/qt-5/index.html 8 | 9 | The Qt version 5.9 series is binary compatible with the 5.8.x series. 10 | Applications compiled for 5.9 will continue to run with 5.9. 11 | 12 | Some of the changes listed in this file include issue tracking numbers 13 | corresponding to tasks in the Qt Bug Tracker: 14 | 15 | https://bugreports.qt.io/ 16 | 17 | Each of these identifiers can be entered in the bug tracker to obtain more 18 | information about a particular change. 19 | 20 | **************************************************************************** 21 | * Qt 5.9.5 Changes * 22 | **************************************************************************** 23 | 24 | - This release contains only minor code improvements. 25 | -------------------------------------------------------------------------------- /dist/changes-5.9.6: -------------------------------------------------------------------------------- 1 | Qt 5.9.6 is a bug-fix release. It maintains both forward and backward 2 | compatibility (source and binary) with Qt 5.9.0 through 5.9.5. 3 | 4 | For more details, refer to the online documentation included in this 5 | distribution. The documentation is also available online: 6 | 7 | http://doc.qt.io/qt-5/index.html 8 | 9 | The Qt version 5.9 series is binary compatible with the 5.8.x series. 10 | Applications compiled for 5.8 will continue to run with 5.9. 11 | 12 | Some of the changes listed in this file include issue tracking numbers 13 | corresponding to tasks in the Qt Bug Tracker: 14 | 15 | https://bugreports.qt.io/ 16 | 17 | Each of these identifiers can be entered in the bug tracker to obtain more 18 | information about a particular change. 19 | 20 | **************************************************************************** 21 | * Qt 5.9.6 Changes * 22 | **************************************************************************** 23 | 24 | - This release contains only minor code improvements. 25 | -------------------------------------------------------------------------------- /dist/changes-6.0.0: -------------------------------------------------------------------------------- 1 | Qt 6.0.0 is a new major version release of Qt. It is not binary compatible with 2 | earlier Qt releases. 3 | 4 | The goal has been to retain as much source compatibility with Qt 5.15 as 5 | possible, but some changes were inevitable to make Qt a better framework. 6 | 7 | To make it easier to port to Qt 6.0, we have created a porting guide to 8 | summarize those changes and provide guidance to handle them. In the guide, you 9 | can find links to articles about changes that may affect your application and 10 | help you transition from Qt 5.15 to Qt 6.0: 11 | 12 | https://doc.qt.io/qt-6/portingguide.html 13 | 14 | For more details refer to the online documentation of Qt 6.0: 15 | 16 | https://doc.qt.io/qt-6/index.html 17 | 18 | -------------------------------------------------------------------------------- /qt_cmdline.cmake: -------------------------------------------------------------------------------- 1 | qt_commandline_subconfig(src/imageformats) 2 | -------------------------------------------------------------------------------- /src/3rdparty/libtiff.pri: -------------------------------------------------------------------------------- 1 | INCLUDEPATH += $$PWD/libtiff/libtiff 2 | SOURCES += \ 3 | $$PWD/libtiff/libtiff/tif_aux.c \ 4 | $$PWD/libtiff/libtiff/tif_close.c \ 5 | $$PWD/libtiff/libtiff/tif_codec.c \ 6 | $$PWD/libtiff/libtiff/tif_color.c \ 7 | $$PWD/libtiff/libtiff/tif_compress.c \ 8 | $$PWD/libtiff/libtiff/tif_dir.c \ 9 | $$PWD/libtiff/libtiff/tif_dirinfo.c \ 10 | $$PWD/libtiff/libtiff/tif_dirread.c \ 11 | $$PWD/libtiff/libtiff/tif_dirwrite.c \ 12 | $$PWD/libtiff/libtiff/tif_dumpmode.c \ 13 | $$PWD/libtiff/libtiff/tif_error.c \ 14 | $$PWD/libtiff/libtiff/tif_extension.c \ 15 | $$PWD/libtiff/libtiff/tif_fax3.c \ 16 | $$PWD/libtiff/libtiff/tif_fax3sm.c \ 17 | $$PWD/libtiff/libtiff/tif_flush.c \ 18 | $$PWD/libtiff/libtiff/tif_getimage.c \ 19 | $$PWD/libtiff/libtiff/tif_hash_set.c \ 20 | $$PWD/libtiff/libtiff/tif_luv.c \ 21 | $$PWD/libtiff/libtiff/tif_lzw.c \ 22 | $$PWD/libtiff/libtiff/tif_next.c \ 23 | $$PWD/libtiff/libtiff/tif_open.c \ 24 | $$PWD/libtiff/libtiff/tif_packbits.c \ 25 | $$PWD/libtiff/libtiff/tif_pixarlog.c \ 26 | $$PWD/libtiff/libtiff/tif_predict.c \ 27 | $$PWD/libtiff/libtiff/tif_print.c \ 28 | $$PWD/libtiff/libtiff/tif_read.c \ 29 | $$PWD/libtiff/libtiff/tif_strip.c \ 30 | $$PWD/libtiff/libtiff/tif_swab.c \ 31 | $$PWD/libtiff/libtiff/tif_thunder.c \ 32 | $$PWD/libtiff/libtiff/tif_tile.c \ 33 | $$PWD/libtiff/libtiff/tif_version.c \ 34 | $$PWD/libtiff/libtiff/tif_warning.c \ 35 | $$PWD/libtiff/libtiff/tif_write.c \ 36 | $$PWD/libtiff/libtiff/tif_zip.c 37 | 38 | win32: SOURCES += $$PWD/libtiff/libtiff/tif_win32.c 39 | else: SOURCES += $$PWD/libtiff/libtiff/tif_unix.c 40 | 41 | include($$PWD/zlib_dependency.pri) 42 | -------------------------------------------------------------------------------- /src/3rdparty/libtiff/COPYRIGHT: -------------------------------------------------------------------------------- 1 | Copyright (c) 1988-1997 Sam Leffler 2 | Copyright (c) 1991-1997 Silicon Graphics, Inc. 3 | 4 | Permission to use, copy, modify, distribute, and sell this software and 5 | its documentation for any purpose is hereby granted without fee, provided 6 | that (i) the above copyright notices and this permission notice appear in 7 | all copies of the software and related documentation, and (ii) the names of 8 | Sam Leffler and Silicon Graphics may not be used in any advertising or 9 | publicity relating to the software without the specific, prior written 10 | permission of Sam Leffler and Silicon Graphics. 11 | 12 | THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 13 | EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 14 | WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 15 | 16 | IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR 17 | ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, 18 | OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 19 | WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 20 | LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 21 | OF THIS SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/3rdparty/libtiff/RELEASE-DATE: -------------------------------------------------------------------------------- 1 | 20240911 2 | -------------------------------------------------------------------------------- /src/3rdparty/libtiff/REUSE.toml: -------------------------------------------------------------------------------- 1 | version = 1 2 | 3 | [[annotations]] 4 | path = ["**"] 5 | precedence = "closest" 6 | SPDX-FileCopyrightText = "Copyright (c) 1988-1997 Sam Leffler\nCopyright (c) 1991-1997 Silicon Graphics, Inc." 7 | SPDX-License-Identifier = "libtiff" 8 | -------------------------------------------------------------------------------- /src/3rdparty/libtiff/TODO: -------------------------------------------------------------------------------- 1 | o gif2tiff segaulting on selected images 2 | o tiffcmp read data by strip/tile instead of scanline 3 | o YCbCr sampling support 4 | o extracate colorspace conversion support 5 | o look at isolating all codecs from TIFF library 6 | o JPEG colormode order dependency problem 7 | o Write documentation on how do extend tags, and how the custom field 8 | stuff all works. 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/3rdparty/libtiff/VERSION: -------------------------------------------------------------------------------- 1 | 4.7.0 2 | -------------------------------------------------------------------------------- /src/3rdparty/libtiff/libtiff/libtiffxx.map: -------------------------------------------------------------------------------- 1 | LIBTIFFXX_4.0 { 2 | global: 3 | *; 4 | }; 5 | -------------------------------------------------------------------------------- /src/3rdparty/libtiff/libtiff/tif_jpeg_12.c: -------------------------------------------------------------------------------- 1 | 2 | #include "tiffiop.h" 3 | 4 | #if defined(HAVE_JPEGTURBO_DUAL_MODE_8_12) 5 | #define JPEG_DUAL_MODE_8_12 6 | #endif 7 | 8 | #if defined(JPEG_DUAL_MODE_8_12) 9 | 10 | #define FROM_TIF_JPEG_12 11 | 12 | #ifdef TIFFInitJPEG 13 | #undef TIFFInitJPEG 14 | #endif 15 | #define TIFFInitJPEG TIFFInitJPEG_12 16 | 17 | #ifdef TIFFJPEGIsFullStripRequired 18 | #undef TIFFJPEGIsFullStripRequired 19 | #endif 20 | #define TIFFJPEGIsFullStripRequired TIFFJPEGIsFullStripRequired_12 21 | 22 | int TIFFInitJPEG_12(TIFF *tif, int scheme); 23 | 24 | #if !defined(HAVE_JPEGTURBO_DUAL_MODE_8_12) 25 | #include LIBJPEG_12_PATH 26 | #endif 27 | 28 | #include "tif_jpeg.c" 29 | 30 | int TIFFReInitJPEG_12(TIFF *tif, const JPEGOtherSettings *otherSettings, 31 | int scheme, int is_encode) 32 | { 33 | JPEGState *sp; 34 | uint8_t *new_tif_data; 35 | 36 | (void)scheme; 37 | assert(scheme == COMPRESSION_JPEG); 38 | 39 | new_tif_data = 40 | (uint8_t *)_TIFFreallocExt(tif, tif->tif_data, sizeof(JPEGState)); 41 | 42 | if (new_tif_data == NULL) 43 | { 44 | TIFFErrorExtR(tif, "TIFFReInitJPEG_12", 45 | "No space for JPEG state block"); 46 | return 0; 47 | } 48 | 49 | tif->tif_data = new_tif_data; 50 | _TIFFmemset(tif->tif_data, 0, sizeof(JPEGState)); 51 | 52 | TIFFInitJPEGCommon(tif); 53 | 54 | sp = JState(tif); 55 | sp->otherSettings = *otherSettings; 56 | 57 | if (is_encode) 58 | return JPEGSetupEncode(tif); 59 | else 60 | return JPEGSetupDecode(tif); 61 | } 62 | 63 | #endif /* defined(JPEG_DUAL_MODE_8_12) */ 64 | -------------------------------------------------------------------------------- /src/3rdparty/libtiff/libtiff/tif_version.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 1992-1997 Sam Leffler 3 | * Copyright (c) 1992-1997 Silicon Graphics, Inc. 4 | * 5 | * Permission to use, copy, modify, distribute, and sell this software and 6 | * its documentation for any purpose is hereby granted without fee, provided 7 | * that (i) the above copyright notices and this permission notice appear in 8 | * all copies of the software and related documentation, and (ii) the names of 9 | * Sam Leffler and Silicon Graphics may not be used in any advertising or 10 | * publicity relating to the software without the specific, prior written 11 | * permission of Sam Leffler and Silicon Graphics. 12 | * 13 | * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 14 | * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 15 | * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 16 | * 17 | * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR 18 | * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, 19 | * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 20 | * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 21 | * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 22 | * OF THIS SOFTWARE. 23 | */ 24 | #include "tiffiop.h" 25 | 26 | static const char TIFFVersion[] = TIFFLIB_VERSION_STR; 27 | 28 | const char *TIFFGetVersion(void) { return (TIFFVersion); } 29 | -------------------------------------------------------------------------------- /src/3rdparty/libtiff/libtiff/tiffio.hxx: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 1988-1997 Sam Leffler 3 | * Copyright (c) 1991-1997 Silicon Graphics, Inc. 4 | * 5 | * Permission to use, copy, modify, distribute, and sell this software and 6 | * its documentation for any purpose is hereby granted without fee, provided 7 | * that (i) the above copyright notices and this permission notice appear in 8 | * all copies of the software and related documentation, and (ii) the names of 9 | * Sam Leffler and Silicon Graphics may not be used in any advertising or 10 | * publicity relating to the software without the specific, prior written 11 | * permission of Sam Leffler and Silicon Graphics. 12 | * 13 | * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 14 | * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 15 | * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 16 | * 17 | * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR 18 | * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, 19 | * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 20 | * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 21 | * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 22 | * OF THIS SOFTWARE. 23 | */ 24 | 25 | #ifndef _TIFFIO_HXX_ 26 | #define _TIFFIO_HXX_ 27 | 28 | /* 29 | * TIFF I/O library definitions which provide C++ streams API. 30 | */ 31 | 32 | #include "tiff.h" 33 | #include "tiffio.h" 34 | #include 35 | 36 | extern TIFF *TIFFStreamOpen(const char *, std::ostream *); 37 | extern TIFF *TIFFStreamOpen(const char *, std::istream *); 38 | 39 | #endif /* _TIFFIO_HXX_ */ 40 | -------------------------------------------------------------------------------- /src/3rdparty/libtiff/libtiff/tiffvers.h: -------------------------------------------------------------------------------- 1 | /* tiffvers.h version information is updated according to version information 2 | * in configure.ac */ 3 | 4 | /* clang-format off */ 5 | 6 | /* clang-format disabled because FindTIFF.cmake is very sensitive to the 7 | * formatting of below line being a single line. 8 | * Furthermore, configure_file variables of type "@VAR@" are 9 | * modified by clang-format and won't be substituted by CMake. 10 | */ 11 | #define TIFFLIB_VERSION_STR "LIBTIFF, Version 4.7.0\nCopyright (c) 1988-1996 Sam Leffler\nCopyright (c) 1991-1996 Silicon Graphics, Inc." 12 | /* 13 | * This define can be used in code that requires 14 | * compilation-related definitions specific to a 15 | * version or versions of the library. Runtime 16 | * version checking should be done based on the 17 | * string returned by TIFFGetVersion. 18 | */ 19 | #define TIFFLIB_VERSION 20240911 20 | 21 | /* The following defines have been added in 4.5.0 */ 22 | #define TIFFLIB_MAJOR_VERSION 4 23 | #define TIFFLIB_MINOR_VERSION 7 24 | #define TIFFLIB_MICRO_VERSION 0 25 | #define TIFFLIB_VERSION_STR_MAJ_MIN_MIC "4.7.0" 26 | 27 | /* Macro added in 4.5.0. Returns TRUE if the current libtiff version is 28 | * greater or equal to major.minor.micro 29 | */ 30 | #define TIFFLIB_AT_LEAST(major, minor, micro) \ 31 | (TIFFLIB_MAJOR_VERSION > (major) || \ 32 | (TIFFLIB_MAJOR_VERSION == (major) && TIFFLIB_MINOR_VERSION > (minor)) || \ 33 | (TIFFLIB_MAJOR_VERSION == (major) && TIFFLIB_MINOR_VERSION == (minor) && \ 34 | TIFFLIB_MICRO_VERSION >= (micro))) 35 | 36 | /* clang-format on */ 37 | -------------------------------------------------------------------------------- /src/3rdparty/libtiff/qt_attribution.json: -------------------------------------------------------------------------------- 1 | { 2 | "Id": "libtiff", 3 | "Name": "TIFF Software Distribution (libtiff)", 4 | "QDocModule": "qtimageformats", 5 | "QtUsage": "Used in the qtiff image plugin if no system libtiff is found.", 6 | "SecurityCritical": true, 7 | 8 | "Description": "", 9 | "Homepage": "http://www.simplesystems.org/libtiff/", 10 | "Version": "4.7.0", 11 | "DownloadLocation": "https://download.osgeo.org/libtiff/tiff-4.7.0.tar.gz", 12 | "PURL": [ 13 | "pkg:gitlab/libtiff/libtiff@v$" 14 | ], 15 | "CPE": [ 16 | "cpe:2.3:a:libtiff:libtiff:$:*:*:*:*:*:*:*" 17 | ], 18 | 19 | "License": "libtiff License", 20 | "LicenseId": "libtiff", 21 | "LicenseFile": "COPYRIGHT", 22 | "Copyright": "Copyright (c) 1988-1997 Sam Leffler\nCopyright (c) 1991-1997 Silicon Graphics, Inc." 23 | } 24 | 25 | -------------------------------------------------------------------------------- /src/3rdparty/libwebp/COPYING: -------------------------------------------------------------------------------- 1 | Copyright (c) 2010, Google Inc. All rights reserved. 2 | 3 | Redistribution and use in source and binary forms, with or without 4 | modification, are permitted provided that the following conditions are 5 | met: 6 | 7 | * Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright 11 | notice, this list of conditions and the following disclaimer in 12 | the documentation and/or other materials provided with the 13 | distribution. 14 | 15 | * Neither the name of Google nor the names of its contributors may 16 | be used to endorse or promote products derived from this software 17 | without specific prior written permission. 18 | 19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 22 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 23 | HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 24 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 25 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 26 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 27 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | 31 | -------------------------------------------------------------------------------- /src/3rdparty/libwebp/PATENTS: -------------------------------------------------------------------------------- 1 | Additional IP Rights Grant (Patents) 2 | ------------------------------------ 3 | 4 | "These implementations" means the copyrightable works that implement the WebM 5 | codecs distributed by Google as part of the WebM Project. 6 | 7 | Google hereby grants to you a perpetual, worldwide, non-exclusive, no-charge, 8 | royalty-free, irrevocable (except as stated in this section) patent license to 9 | make, have made, use, offer to sell, sell, import, transfer, and otherwise 10 | run, modify and propagate the contents of these implementations of WebM, where 11 | such license applies only to those patent claims, both currently owned by 12 | Google and acquired in the future, licensable by Google that are necessarily 13 | infringed by these implementations of WebM. This grant does not include claims 14 | that would be infringed only as a consequence of further modification of these 15 | implementations. If you or your agent or exclusive licensee institute or order 16 | or agree to the institution of patent litigation or any other patent 17 | enforcement activity against any entity (including a cross-claim or 18 | counterclaim in a lawsuit) alleging that any of these implementations of WebM 19 | or any code incorporated within any of these implementations of WebM 20 | constitute direct or contributory patent infringement, or inducement of 21 | patent infringement, then any patent rights granted to you under this License 22 | for these implementations of WebM shall terminate as of the date such 23 | litigation is filed. 24 | -------------------------------------------------------------------------------- /src/3rdparty/libwebp/REUSE.toml: -------------------------------------------------------------------------------- 1 | version = 1 2 | 3 | [[annotations]] 4 | path = ["**"] 5 | precedence = "closest" 6 | SPDX-FileCopyrightText = "Copyright (c) 2010, Google Inc. All rights reserved." 7 | SPDX-License-Identifier = "BSD-3-Clause" 8 | -------------------------------------------------------------------------------- /src/3rdparty/libwebp/patches/0001-Fix-Windows-build-for-clang-and-neon.patch: -------------------------------------------------------------------------------- 1 | diff --git a/src/3rdparty/libwebp/src/dsp/cpu.h b/src/3rdparty/libwebp/src/dsp/cpu.h 2 | index c86540f..581ecbd 100644 3 | --- a/src/3rdparty/libwebp/src/dsp/cpu.h 4 | +++ b/src/3rdparty/libwebp/src/dsp/cpu.h 5 | @@ -14,6 +14,8 @@ 6 | #ifndef WEBP_DSP_CPU_H_ 7 | #define WEBP_DSP_CPU_H_ 8 | 9 | +#include 10 | + 11 | #include 12 | 13 | #ifdef HAVE_CONFIG_H 14 | @@ -48,12 +50,12 @@ 15 | 16 | #if !defined(HAVE_CONFIG_H) 17 | #if defined(_MSC_VER) && _MSC_VER > 1310 && \ 18 | - (defined(_M_X64) || defined(_M_IX86)) 19 | + (defined(_M_X64) || defined(_M_IX86)) && !defined(__clang__) 20 | #define WEBP_MSC_SSE2 // Visual C++ SSE2 targets 21 | #endif 22 | 23 | #if defined(_MSC_VER) && _MSC_VER >= 1500 && \ 24 | - (defined(_M_X64) || defined(_M_IX86)) 25 | + (defined(_M_X64) || defined(_M_IX86)) && !defined(__clang__) 26 | #define WEBP_MSC_SSE41 // Visual C++ SSE4.1 targets 27 | #endif 28 | #endif 29 | @@ -106,7 +108,8 @@ 30 | // vtbl4_u8(); a fix was made in 16.6. 31 | #if defined(_MSC_VER) && \ 32 | ((_MSC_VER >= 1700 && defined(_M_ARM)) || \ 33 | - (_MSC_VER >= 1926 && (defined(_M_ARM64) || defined(_M_ARM64EC)))) 34 | + (_MSC_VER >= 1926 && (defined(_M_ARM64) || defined(_M_ARM64EC)))) && \ 35 | + !defined(__clang__) && (QT_CONFIG_neon == 1) 36 | #define WEBP_USE_NEON 37 | #define WEBP_USE_INTRINSICS 38 | #endif 39 | -------------------------------------------------------------------------------- /src/3rdparty/libwebp/patches/0002-Fix-neon-build-for-qnx.patch: -------------------------------------------------------------------------------- 1 | diff --git a/src/3rdparty/libwebp/src/dsp/neon.h b/src/3rdparty/libwebp/src/dsp/neon.h 2 | index 14acb40..46d743e 100644 3 | --- a/src/3rdparty/libwebp/src/dsp/neon.h 4 | +++ b/src/3rdparty/libwebp/src/dsp/neon.h 5 | @@ -82,6 +82,17 @@ static WEBP_INLINE int32x4x4_t Transpose4x4_NEON(const int32x4x4_t rows) { 6 | } 7 | } 8 | 9 | +#if defined(__GNUC__) && __GNUC__ <= 9 && !defined(__clang__) 10 | +WEBP_INLINE uint8x16x4_t vld1q_u8_x4(const uint8_t *p) { 11 | + uint8x16x4_t ret; 12 | + ret.val[0] = vld1q_u8(p + 0); 13 | + ret.val[1] = vld1q_u8(p + 16); 14 | + ret.val[2] = vld1q_u8(p + 32); 15 | + ret.val[3] = vld1q_u8(p + 48); 16 | + return ret; 17 | +} 18 | +#endif 19 | + 20 | #if 0 // Useful debug macro. 21 | #include 22 | #define PRINT_REG(REG, SIZE) do { \ 23 | -------------------------------------------------------------------------------- /src/3rdparty/libwebp/qt_attribution.json: -------------------------------------------------------------------------------- 1 | { 2 | "Id": "libwebp", 3 | "Name": "WebP (libwebp)", 4 | "QDocModule": "qtimageformats", 5 | "QtUsage": "Used in the qwebp image plugin if no system libwebp is found.", 6 | "SecurityCritical": true, 7 | 8 | "Description": "WebP is a new image format that provides lossless and lossy compression for images on the web.", 9 | "Homepage": "https://developers.google.com/speed/webp/", 10 | 11 | "Version": "1.5.0", 12 | "DownloadLocation": "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.5.0.tar.gz", 13 | "PURL": [ 14 | "pkg:github/webmproject/libwebp@$v" 15 | ], 16 | "CPE": [ 17 | "cpe:2.3:a:webmproject:libwebp:$:*:*:*:*:*:*:*" 18 | ], 19 | "License": "BSD 3-clause \"New\" or \"Revised\" License", 20 | "LicenseId": "BSD-3-Clause", 21 | "LicenseFile": "COPYING", 22 | "Copyright": "Copyright (c) 2010, Google Inc. All rights reserved." 23 | } 24 | -------------------------------------------------------------------------------- /src/3rdparty/libwebp/sharpyuv/sharpyuv_cpu.c: -------------------------------------------------------------------------------- 1 | // Copyright 2022 Google Inc. All Rights Reserved. 2 | // 3 | // Use of this source code is governed by a BSD-style license 4 | // that can be found in the COPYING file in the root of the source 5 | // tree. An additional intellectual property rights grant can be found 6 | // in the file PATENTS. All contributing project authors may 7 | // be found in the AUTHORS file in the root of the source tree. 8 | // ----------------------------------------------------------------------------- 9 | // 10 | #include "sharpyuv/sharpyuv_cpu.h" 11 | 12 | // Include src/dsp/cpu.c to create SharpYuvGetCPUInfo from VP8GetCPUInfo. The 13 | // function pointer is renamed in sharpyuv_cpu.h. 14 | #include "src/dsp/cpu.c" 15 | -------------------------------------------------------------------------------- /src/3rdparty/libwebp/sharpyuv/sharpyuv_cpu.h: -------------------------------------------------------------------------------- 1 | // Copyright 2022 Google Inc. All Rights Reserved. 2 | // 3 | // Use of this source code is governed by a BSD-style license 4 | // that can be found in the COPYING file in the root of the source 5 | // tree. An additional intellectual property rights grant can be found 6 | // in the file PATENTS. All contributing project authors may 7 | // be found in the AUTHORS file in the root of the source tree. 8 | // ----------------------------------------------------------------------------- 9 | // 10 | #ifndef WEBP_SHARPYUV_SHARPYUV_CPU_H_ 11 | #define WEBP_SHARPYUV_SHARPYUV_CPU_H_ 12 | 13 | #include "sharpyuv/sharpyuv.h" 14 | 15 | // Avoid exporting SharpYuvGetCPUInfo in shared object / DLL builds. 16 | // SharpYuvInit() replaces the use of the function pointer. 17 | #undef WEBP_EXTERN 18 | #define WEBP_EXTERN extern 19 | #define VP8GetCPUInfo SharpYuvGetCPUInfo 20 | #include "src/dsp/cpu.h" 21 | 22 | #endif // WEBP_SHARPYUV_SHARPYUV_CPU_H_ 23 | -------------------------------------------------------------------------------- /src/3rdparty/libwebp/sharpyuv/sharpyuv_dsp.h: -------------------------------------------------------------------------------- 1 | // Copyright 2022 Google Inc. All Rights Reserved. 2 | // 3 | // Use of this source code is governed by a BSD-style license 4 | // that can be found in the COPYING file in the root of the source 5 | // tree. An additional intellectual property rights grant can be found 6 | // in the file PATENTS. All contributing project authors may 7 | // be found in the AUTHORS file in the root of the source tree. 8 | // ----------------------------------------------------------------------------- 9 | // 10 | // Speed-critical functions for Sharp YUV. 11 | 12 | #ifndef WEBP_SHARPYUV_SHARPYUV_DSP_H_ 13 | #define WEBP_SHARPYUV_SHARPYUV_DSP_H_ 14 | 15 | #include "sharpyuv/sharpyuv_cpu.h" 16 | #include "src/webp/types.h" 17 | 18 | extern uint64_t (*SharpYuvUpdateY)(const uint16_t* src, const uint16_t* ref, 19 | uint16_t* dst, int len, int bit_depth); 20 | extern void (*SharpYuvUpdateRGB)(const int16_t* src, const int16_t* ref, 21 | int16_t* dst, int len); 22 | extern void (*SharpYuvFilterRow)(const int16_t* A, const int16_t* B, int len, 23 | const uint16_t* best_y, uint16_t* out, 24 | int bit_depth); 25 | 26 | void SharpYuvInitDsp(void); 27 | 28 | #endif // WEBP_SHARPYUV_SHARPYUV_DSP_H_ 29 | -------------------------------------------------------------------------------- /src/3rdparty/libwebp/sharpyuv/sharpyuv_gamma.h: -------------------------------------------------------------------------------- 1 | // Copyright 2022 Google Inc. All Rights Reserved. 2 | // 3 | // Use of this source code is governed by a BSD-style license 4 | // that can be found in the COPYING file in the root of the source 5 | // tree. An additional intellectual property rights grant can be found 6 | // in the file PATENTS. All contributing project authors may 7 | // be found in the AUTHORS file in the root of the source tree. 8 | // ----------------------------------------------------------------------------- 9 | // 10 | // Gamma correction utilities. 11 | 12 | #ifndef WEBP_SHARPYUV_SHARPYUV_GAMMA_H_ 13 | #define WEBP_SHARPYUV_SHARPYUV_GAMMA_H_ 14 | 15 | #include "sharpyuv/sharpyuv.h" 16 | #include "src/webp/types.h" 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | // Initializes precomputed tables. Must be called once before calling 23 | // SharpYuvGammaToLinear or SharpYuvLinearToGamma. 24 | void SharpYuvInitGammaTables(void); 25 | 26 | // Converts a 'bit_depth'-bit gamma color value to a 16-bit linear value. 27 | uint32_t SharpYuvGammaToLinear(uint16_t v, int bit_depth, 28 | SharpYuvTransferFunctionType transfer_type); 29 | 30 | // Converts a 16-bit linear color value to a 'bit_depth'-bit gamma value. 31 | uint16_t SharpYuvLinearToGamma(uint32_t value, int bit_depth, 32 | SharpYuvTransferFunctionType transfer_type); 33 | 34 | #ifdef __cplusplus 35 | } // extern "C" 36 | #endif 37 | 38 | #endif // WEBP_SHARPYUV_SHARPYUV_GAMMA_H_ 39 | -------------------------------------------------------------------------------- /src/3rdparty/libwebp/src/dec/alphai_dec.h: -------------------------------------------------------------------------------- 1 | // Copyright 2013 Google Inc. All Rights Reserved. 2 | // 3 | // Use of this source code is governed by a BSD-style license 4 | // that can be found in the COPYING file in the root of the source 5 | // tree. An additional intellectual property rights grant can be found 6 | // in the file PATENTS. All contributing project authors may 7 | // be found in the AUTHORS file in the root of the source tree. 8 | // ----------------------------------------------------------------------------- 9 | // 10 | // Alpha decoder: internal header. 11 | // 12 | // Author: Urvang (urvang@google.com) 13 | 14 | #ifndef WEBP_DEC_ALPHAI_DEC_H_ 15 | #define WEBP_DEC_ALPHAI_DEC_H_ 16 | 17 | #include "src/dec/webpi_dec.h" 18 | #include "src/utils/filters_utils.h" 19 | 20 | #ifdef __cplusplus 21 | extern "C" { 22 | #endif 23 | 24 | struct VP8LDecoder; // Defined in dec/vp8li.h. 25 | 26 | typedef struct ALPHDecoder ALPHDecoder; 27 | struct ALPHDecoder { 28 | int width_; 29 | int height_; 30 | int method_; 31 | WEBP_FILTER_TYPE filter_; 32 | int pre_processing_; 33 | struct VP8LDecoder* vp8l_dec_; 34 | VP8Io io_; 35 | int use_8b_decode_; // Although alpha channel requires only 1 byte per 36 | // pixel, sometimes VP8LDecoder may need to allocate 37 | // 4 bytes per pixel internally during decode. 38 | uint8_t* output_; 39 | const uint8_t* prev_line_; // last output row (or NULL) 40 | }; 41 | 42 | //------------------------------------------------------------------------------ 43 | // internal functions. Not public. 44 | 45 | // Deallocate memory associated to dec->alpha_plane_ decoding 46 | void WebPDeallocateAlphaMemory(VP8Decoder* const dec); 47 | 48 | //------------------------------------------------------------------------------ 49 | 50 | #ifdef __cplusplus 51 | } // extern "C" 52 | #endif 53 | 54 | #endif // WEBP_DEC_ALPHAI_DEC_H_ 55 | -------------------------------------------------------------------------------- /src/3rdparty/libwebp/src/dec/common_dec.h: -------------------------------------------------------------------------------- 1 | // Copyright 2015 Google Inc. All Rights Reserved. 2 | // 3 | // Use of this source code is governed by a BSD-style license 4 | // that can be found in the COPYING file in the root of the source 5 | // tree. An additional intellectual property rights grant can be found 6 | // in the file PATENTS. All contributing project authors may 7 | // be found in the AUTHORS file in the root of the source tree. 8 | // ----------------------------------------------------------------------------- 9 | // 10 | // Definitions and macros common to encoding and decoding 11 | // 12 | // Author: Skal (pascal.massimino@gmail.com) 13 | 14 | #ifndef WEBP_DEC_COMMON_DEC_H_ 15 | #define WEBP_DEC_COMMON_DEC_H_ 16 | 17 | // intra prediction modes 18 | enum { B_DC_PRED = 0, // 4x4 modes 19 | B_TM_PRED = 1, 20 | B_VE_PRED = 2, 21 | B_HE_PRED = 3, 22 | B_RD_PRED = 4, 23 | B_VR_PRED = 5, 24 | B_LD_PRED = 6, 25 | B_VL_PRED = 7, 26 | B_HD_PRED = 8, 27 | B_HU_PRED = 9, 28 | NUM_BMODES = B_HU_PRED + 1 - B_DC_PRED, // = 10 29 | 30 | // Luma16 or UV modes 31 | DC_PRED = B_DC_PRED, V_PRED = B_VE_PRED, 32 | H_PRED = B_HE_PRED, TM_PRED = B_TM_PRED, 33 | B_PRED = NUM_BMODES, // refined I4x4 mode 34 | NUM_PRED_MODES = 4, 35 | 36 | // special modes 37 | B_DC_PRED_NOTOP = 4, 38 | B_DC_PRED_NOLEFT = 5, 39 | B_DC_PRED_NOTOPLEFT = 6, 40 | NUM_B_DC_MODES = 7 }; 41 | 42 | enum { MB_FEATURE_TREE_PROBS = 3, 43 | NUM_MB_SEGMENTS = 4, 44 | NUM_REF_LF_DELTAS = 4, 45 | NUM_MODE_LF_DELTAS = 4, // I4x4, ZERO, *, SPLIT 46 | MAX_NUM_PARTITIONS = 8, 47 | // Probabilities 48 | NUM_TYPES = 4, // 0: i16-AC, 1: i16-DC, 2:chroma-AC, 3:i4-AC 49 | NUM_BANDS = 8, 50 | NUM_CTX = 3, 51 | NUM_PROBAS = 11 52 | }; 53 | 54 | #endif // WEBP_DEC_COMMON_DEC_H_ 55 | -------------------------------------------------------------------------------- /src/3rdparty/libwebp/src/dsp/dec_sse41.c: -------------------------------------------------------------------------------- 1 | // Copyright 2015 Google Inc. All Rights Reserved. 2 | // 3 | // Use of this source code is governed by a BSD-style license 4 | // that can be found in the COPYING file in the root of the source 5 | // tree. An additional intellectual property rights grant can be found 6 | // in the file PATENTS. All contributing project authors may 7 | // be found in the AUTHORS file in the root of the source tree. 8 | // ----------------------------------------------------------------------------- 9 | // 10 | // SSE4 version of some decoding functions. 11 | // 12 | // Author: Skal (pascal.massimino@gmail.com) 13 | 14 | #include "src/dsp/dsp.h" 15 | 16 | #if defined(WEBP_USE_SSE41) 17 | 18 | #include 19 | #include "src/dec/vp8i_dec.h" 20 | #include "src/utils/utils.h" 21 | 22 | static void HE16_SSE41(uint8_t* dst) { // horizontal 23 | int j; 24 | const __m128i kShuffle3 = _mm_set1_epi8(3); 25 | for (j = 16; j > 0; --j) { 26 | const __m128i in = _mm_cvtsi32_si128(WebPMemToInt32(dst - 4)); 27 | const __m128i values = _mm_shuffle_epi8(in, kShuffle3); 28 | _mm_storeu_si128((__m128i*)dst, values); 29 | dst += BPS; 30 | } 31 | } 32 | 33 | //------------------------------------------------------------------------------ 34 | // Entry point 35 | 36 | extern void VP8DspInitSSE41(void); 37 | 38 | WEBP_TSAN_IGNORE_FUNCTION void VP8DspInitSSE41(void) { 39 | VP8PredLuma16[3] = HE16_SSE41; 40 | } 41 | 42 | #else // !WEBP_USE_SSE41 43 | 44 | WEBP_DSP_INIT_STUB(VP8DspInitSSE41) 45 | 46 | #endif // WEBP_USE_SSE41 47 | -------------------------------------------------------------------------------- /src/3rdparty/libwebp/src/mux/animi.h: -------------------------------------------------------------------------------- 1 | // Copyright 2016 Google Inc. All Rights Reserved. 2 | // 3 | // Use of this source code is governed by a BSD-style license 4 | // that can be found in the COPYING file in the root of the source 5 | // tree. An additional intellectual property rights grant can be found 6 | // in the file PATENTS. All contributing project authors may 7 | // be found in the AUTHORS file in the root of the source tree. 8 | // ----------------------------------------------------------------------------- 9 | // 10 | // Internal header for animation related functions. 11 | // 12 | // Author: Hui Su (huisu@google.com) 13 | 14 | #ifndef WEBP_MUX_ANIMI_H_ 15 | #define WEBP_MUX_ANIMI_H_ 16 | 17 | #include "src/webp/mux.h" 18 | 19 | #ifdef __cplusplus 20 | extern "C" { 21 | #endif 22 | 23 | // Picks the optimal rectangle between two pictures, starting with initial 24 | // values of offsets and dimensions that are passed in. The initial 25 | // values will be clipped, if necessary, to make sure the rectangle is 26 | // within the canvas. "use_argb" must be true for both pictures. 27 | // Parameters: 28 | // prev_canvas, curr_canvas - (in) two input pictures to compare. 29 | // is_lossless, quality - (in) encoding settings. 30 | // x_offset, y_offset, width, height - (in/out) rectangle between the two 31 | // input pictures. 32 | // Returns true on success. 33 | int WebPAnimEncoderRefineRect( 34 | const struct WebPPicture* const prev_canvas, 35 | const struct WebPPicture* const curr_canvas, 36 | int is_lossless, float quality, int* const x_offset, int* const y_offset, 37 | int* const width, int* const height); 38 | 39 | #ifdef __cplusplus 40 | } // extern "C" 41 | #endif 42 | 43 | #endif // WEBP_MUX_ANIMI_H_ 44 | -------------------------------------------------------------------------------- /src/3rdparty/libwebp/src/utils/color_cache_utils.c: -------------------------------------------------------------------------------- 1 | // Copyright 2012 Google Inc. All Rights Reserved. 2 | // 3 | // Use of this source code is governed by a BSD-style license 4 | // that can be found in the COPYING file in the root of the source 5 | // tree. An additional intellectual property rights grant can be found 6 | // in the file PATENTS. All contributing project authors may 7 | // be found in the AUTHORS file in the root of the source tree. 8 | // ----------------------------------------------------------------------------- 9 | // 10 | // Color Cache for WebP Lossless 11 | // 12 | // Author: Jyrki Alakuijala (jyrki@google.com) 13 | 14 | #include 15 | #include 16 | #include 17 | #include "src/utils/color_cache_utils.h" 18 | #include "src/utils/utils.h" 19 | 20 | //------------------------------------------------------------------------------ 21 | // VP8LColorCache. 22 | 23 | int VP8LColorCacheInit(VP8LColorCache* const color_cache, int hash_bits) { 24 | const int hash_size = 1 << hash_bits; 25 | assert(color_cache != NULL); 26 | assert(hash_bits > 0); 27 | color_cache->colors_ = (uint32_t*)WebPSafeCalloc( 28 | (uint64_t)hash_size, sizeof(*color_cache->colors_)); 29 | if (color_cache->colors_ == NULL) return 0; 30 | color_cache->hash_shift_ = 32 - hash_bits; 31 | color_cache->hash_bits_ = hash_bits; 32 | return 1; 33 | } 34 | 35 | void VP8LColorCacheClear(VP8LColorCache* const color_cache) { 36 | if (color_cache != NULL) { 37 | WebPSafeFree(color_cache->colors_); 38 | color_cache->colors_ = NULL; 39 | } 40 | } 41 | 42 | void VP8LColorCacheCopy(const VP8LColorCache* const src, 43 | VP8LColorCache* const dst) { 44 | assert(src != NULL); 45 | assert(dst != NULL); 46 | assert(src->hash_bits_ == dst->hash_bits_); 47 | memcpy(dst->colors_, src->colors_, 48 | ((size_t)1u << dst->hash_bits_) * sizeof(*dst->colors_)); 49 | } 50 | -------------------------------------------------------------------------------- /src/3rdparty/libwebp/src/utils/filters_utils.h: -------------------------------------------------------------------------------- 1 | // Copyright 2011 Google Inc. All Rights Reserved. 2 | // 3 | // Use of this source code is governed by a BSD-style license 4 | // that can be found in the COPYING file in the root of the source 5 | // tree. An additional intellectual property rights grant can be found 6 | // in the file PATENTS. All contributing project authors may 7 | // be found in the AUTHORS file in the root of the source tree. 8 | // ----------------------------------------------------------------------------- 9 | // 10 | // Spatial prediction using various filters 11 | // 12 | // Author: Urvang (urvang@google.com) 13 | 14 | #ifndef WEBP_UTILS_FILTERS_UTILS_H_ 15 | #define WEBP_UTILS_FILTERS_UTILS_H_ 16 | 17 | #include "src/webp/types.h" 18 | #include "src/dsp/dsp.h" 19 | 20 | #ifdef __cplusplus 21 | extern "C" { 22 | #endif 23 | 24 | // Fast estimate of a potentially good filter. 25 | WEBP_FILTER_TYPE WebPEstimateBestFilter(const uint8_t* data, 26 | int width, int height, int stride); 27 | 28 | #ifdef __cplusplus 29 | } // extern "C" 30 | #endif 31 | 32 | #endif // WEBP_UTILS_FILTERS_UTILS_H_ 33 | -------------------------------------------------------------------------------- /src/3rdparty/libwebp/src/utils/quant_levels_dec_utils.h: -------------------------------------------------------------------------------- 1 | // Copyright 2013 Google Inc. All Rights Reserved. 2 | // 3 | // Use of this source code is governed by a BSD-style license 4 | // that can be found in the COPYING file in the root of the source 5 | // tree. An additional intellectual property rights grant can be found 6 | // in the file PATENTS. All contributing project authors may 7 | // be found in the AUTHORS file in the root of the source tree. 8 | // ----------------------------------------------------------------------------- 9 | // 10 | // Alpha plane de-quantization utility 11 | // 12 | // Author: Vikas Arora (vikasa@google.com) 13 | 14 | #ifndef WEBP_UTILS_QUANT_LEVELS_DEC_UTILS_H_ 15 | #define WEBP_UTILS_QUANT_LEVELS_DEC_UTILS_H_ 16 | 17 | #include "src/webp/types.h" 18 | 19 | #ifdef __cplusplus 20 | extern "C" { 21 | #endif 22 | 23 | // Apply post-processing to input 'data' of size 'width'x'height' assuming that 24 | // the source was quantized to a reduced number of levels. 'stride' is in bytes. 25 | // Strength is in [0..100] and controls the amount of dithering applied. 26 | // Returns false in case of error (data is NULL, invalid parameters, 27 | // malloc failure, ...). 28 | int WebPDequantizeLevels(uint8_t* const data, int width, int height, int stride, 29 | int strength); 30 | 31 | #ifdef __cplusplus 32 | } // extern "C" 33 | #endif 34 | 35 | #endif // WEBP_UTILS_QUANT_LEVELS_DEC_UTILS_H_ 36 | -------------------------------------------------------------------------------- /src/3rdparty/libwebp/src/utils/quant_levels_utils.h: -------------------------------------------------------------------------------- 1 | // Copyright 2011 Google Inc. All Rights Reserved. 2 | // 3 | // Use of this source code is governed by a BSD-style license 4 | // that can be found in the COPYING file in the root of the source 5 | // tree. An additional intellectual property rights grant can be found 6 | // in the file PATENTS. All contributing project authors may 7 | // be found in the AUTHORS file in the root of the source tree. 8 | // ----------------------------------------------------------------------------- 9 | // 10 | // Alpha plane quantization utility 11 | // 12 | // Author: Vikas Arora (vikasa@google.com) 13 | 14 | #ifndef WEBP_UTILS_QUANT_LEVELS_UTILS_H_ 15 | #define WEBP_UTILS_QUANT_LEVELS_UTILS_H_ 16 | 17 | #include 18 | 19 | #include "src/webp/types.h" 20 | 21 | #ifdef __cplusplus 22 | extern "C" { 23 | #endif 24 | 25 | // Replace the input 'data' of size 'width'x'height' with 'num-levels' 26 | // quantized values. If not NULL, 'sse' will contain the sum of squared error. 27 | // Valid range for 'num_levels' is [2, 256]. 28 | // Returns false in case of error (data is NULL, or parameters are invalid). 29 | int QuantizeLevels(uint8_t* const data, int width, int height, int num_levels, 30 | uint64_t* const sse); 31 | 32 | #ifdef __cplusplus 33 | } // extern "C" 34 | #endif 35 | 36 | #endif // WEBP_UTILS_QUANT_LEVELS_UTILS_H_ 37 | -------------------------------------------------------------------------------- /src/3rdparty/libwebp/src/utils/random_utils.c: -------------------------------------------------------------------------------- 1 | // Copyright 2013 Google Inc. All Rights Reserved. 2 | // 3 | // Use of this source code is governed by a BSD-style license 4 | // that can be found in the COPYING file in the root of the source 5 | // tree. An additional intellectual property rights grant can be found 6 | // in the file PATENTS. All contributing project authors may 7 | // be found in the AUTHORS file in the root of the source tree. 8 | // ----------------------------------------------------------------------------- 9 | // 10 | // Pseudo-random utilities 11 | // 12 | // Author: Skal (pascal.massimino@gmail.com) 13 | 14 | #include 15 | #include "src/utils/random_utils.h" 16 | 17 | //------------------------------------------------------------------------------ 18 | 19 | // 31b-range values 20 | static const uint32_t kRandomTable[VP8_RANDOM_TABLE_SIZE] = { 21 | 0x0de15230, 0x03b31886, 0x775faccb, 0x1c88626a, 0x68385c55, 0x14b3b828, 22 | 0x4a85fef8, 0x49ddb84b, 0x64fcf397, 0x5c550289, 0x4a290000, 0x0d7ec1da, 23 | 0x5940b7ab, 0x5492577d, 0x4e19ca72, 0x38d38c69, 0x0c01ee65, 0x32a1755f, 24 | 0x5437f652, 0x5abb2c32, 0x0faa57b1, 0x73f533e7, 0x685feeda, 0x7563cce2, 25 | 0x6e990e83, 0x4730a7ed, 0x4fc0d9c6, 0x496b153c, 0x4f1403fa, 0x541afb0c, 26 | 0x73990b32, 0x26d7cb1c, 0x6fcc3706, 0x2cbb77d8, 0x75762f2a, 0x6425ccdd, 27 | 0x24b35461, 0x0a7d8715, 0x220414a8, 0x141ebf67, 0x56b41583, 0x73e502e3, 28 | 0x44cab16f, 0x28264d42, 0x73baaefb, 0x0a50ebed, 0x1d6ab6fb, 0x0d3ad40b, 29 | 0x35db3b68, 0x2b081e83, 0x77ce6b95, 0x5181e5f0, 0x78853bbc, 0x009f9494, 30 | 0x27e5ed3c 31 | }; 32 | 33 | void VP8InitRandom(VP8Random* const rg, float dithering) { 34 | memcpy(rg->tab_, kRandomTable, sizeof(rg->tab_)); 35 | rg->index1_ = 0; 36 | rg->index2_ = 31; 37 | rg->amp_ = (dithering < 0.0) ? 0 38 | : (dithering > 1.0) ? (1 << VP8_RANDOM_DITHER_FIX) 39 | : (uint32_t)((1 << VP8_RANDOM_DITHER_FIX) * dithering); 40 | } 41 | 42 | //------------------------------------------------------------------------------ 43 | 44 | -------------------------------------------------------------------------------- /src/3rdparty/libwebp/src/utils/random_utils.h: -------------------------------------------------------------------------------- 1 | // Copyright 2013 Google Inc. All Rights Reserved. 2 | // 3 | // Use of this source code is governed by a BSD-style license 4 | // that can be found in the COPYING file in the root of the source 5 | // tree. An additional intellectual property rights grant can be found 6 | // in the file PATENTS. All contributing project authors may 7 | // be found in the AUTHORS file in the root of the source tree. 8 | // ----------------------------------------------------------------------------- 9 | // 10 | // Pseudo-random utilities 11 | // 12 | // Author: Skal (pascal.massimino@gmail.com) 13 | 14 | #ifndef WEBP_UTILS_RANDOM_UTILS_H_ 15 | #define WEBP_UTILS_RANDOM_UTILS_H_ 16 | 17 | #include 18 | #include "src/webp/types.h" 19 | 20 | #ifdef __cplusplus 21 | extern "C" { 22 | #endif 23 | 24 | #define VP8_RANDOM_DITHER_FIX 8 // fixed-point precision for dithering 25 | #define VP8_RANDOM_TABLE_SIZE 55 26 | 27 | typedef struct { 28 | int index1_, index2_; 29 | uint32_t tab_[VP8_RANDOM_TABLE_SIZE]; 30 | int amp_; 31 | } VP8Random; 32 | 33 | // Initializes random generator with an amplitude 'dithering' in range [0..1]. 34 | void VP8InitRandom(VP8Random* const rg, float dithering); 35 | 36 | // Returns a centered pseudo-random number with 'num_bits' amplitude. 37 | // (uses D.Knuth's Difference-based random generator). 38 | // 'amp' is in VP8_RANDOM_DITHER_FIX fixed-point precision. 39 | static WEBP_INLINE int VP8RandomBits2(VP8Random* const rg, int num_bits, 40 | int amp) { 41 | int diff; 42 | assert(num_bits + VP8_RANDOM_DITHER_FIX <= 31); 43 | diff = rg->tab_[rg->index1_] - rg->tab_[rg->index2_]; 44 | if (diff < 0) diff += (1u << 31); 45 | rg->tab_[rg->index1_] = diff; 46 | if (++rg->index1_ == VP8_RANDOM_TABLE_SIZE) rg->index1_ = 0; 47 | if (++rg->index2_ == VP8_RANDOM_TABLE_SIZE) rg->index2_ = 0; 48 | // sign-extend, 0-center 49 | diff = (int)((uint32_t)diff << 1) >> (32 - num_bits); 50 | diff = (diff * amp) >> VP8_RANDOM_DITHER_FIX; // restrict range 51 | diff += 1 << (num_bits - 1); // shift back to 0.5-center 52 | return diff; 53 | } 54 | 55 | static WEBP_INLINE int VP8RandomBits(VP8Random* const rg, int num_bits) { 56 | return VP8RandomBits2(rg, num_bits, rg->amp_); 57 | } 58 | 59 | #ifdef __cplusplus 60 | } // extern "C" 61 | #endif 62 | 63 | #endif // WEBP_UTILS_RANDOM_UTILS_H_ 64 | -------------------------------------------------------------------------------- /src/3rdparty/zlib_dependency.pri: -------------------------------------------------------------------------------- 1 | # zlib dependency satisfied by bundled 3rd party zlib or system zlib 2 | qtConfig(system-zlib) { 3 | QMAKE_USE_PRIVATE += zlib 4 | } else { 5 | QT_PRIVATE += zlib-private 6 | } 7 | -------------------------------------------------------------------------------- /src/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2022 The Qt Company Ltd. 2 | # SPDX-License-Identifier: BSD-3-Clause 3 | 4 | add_subdirectory(imageformats) 5 | add_subdirectory(plugins) 6 | -------------------------------------------------------------------------------- /src/imageformats/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2022 The Qt Company Ltd. 2 | # SPDX-License-Identifier: BSD-3-Clause 3 | 4 | add_library(ImageFormats INTERFACE) 5 | qt_internal_add_docs(ImageFormats 6 | doc/qtimageformats.qdocconf 7 | ) 8 | 9 | -------------------------------------------------------------------------------- /src/imageformats/doc/qtimageformats.qdocconf: -------------------------------------------------------------------------------- 1 | include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf) 2 | include($QT_INSTALL_DOCS/config/exampleurl-qtimageformats.qdocconf) 3 | 4 | # Name of the project. 5 | project = QtImageFormats 6 | description = Qt Image Formats Documentation 7 | version = $QT_VERSION 8 | 9 | # Instruct Clang to not look for a module header 10 | moduleheader = 11 | 12 | # Directories in which to search for files to document. 13 | # Paths are relative to the location of this file. 14 | # exampledirs += ../examples 15 | # headerdirs += 16 | # imagedirs += images 17 | sourcedirs += src 18 | 19 | depends += qtcore qtgui qtdoc 20 | 21 | # The following parameters are for creating a qhp file, the qhelpgenerator 22 | # program can convert the qhp file into a qch file which can be opened in 23 | # Qt Assistant and/or Qt Creator. 24 | 25 | # Defines the name of the project. You cannot use operators (+, =, -) in 26 | # the name. Properties for this project are set using a qhp..property 27 | # format. 28 | qhp.projects = QtImageFormats 29 | 30 | # Sets the name of the output qhp file. 31 | qhp.QtImageFormats.file = qtimageformats.qhp 32 | 33 | # Namespace for the output file. This namespace is used to distinguish between 34 | # different documentation files in Creator/Assistant. The namespace ends with 35 | # a version being a number containing a major, minor and revision element. 36 | # E.g. version 1.0 becomes 100. 37 | qhp.QtImageFormats.namespace = org.qt-project.qtimageformats.$QT_VERSION_TAG 38 | 39 | # Title for the package, will be the main title for the package in 40 | # Assistant/Creator. 41 | qhp.QtImageFormats.indexTitle = Qt Image Formats 42 | 43 | # Only update the name of the project for the next variables. 44 | qhp.QtImageFormats.virtualFolder = qtimageformats 45 | 46 | qhp.QtImageFormats.subprojects = list 47 | qhp.QtImageFormats.subprojects.list.title = Qt Image Formats 48 | qhp.QtImageFormats.subprojects.list.indexTitle = Qt Image Formats 49 | qhp.QtImageFormats.subprojects.list.type = manual 50 | 51 | navigation.landingpage = "Qt Image Formats" 52 | 53 | # Allow zero warnings when testing documentation in CI 54 | warninglimit = 0 55 | -------------------------------------------------------------------------------- /src/imageformats/qt_cmdline.cmake: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2022 The Qt Company Ltd. 2 | # SPDX-License-Identifier: BSD-3-Clause 3 | 4 | qt_commandline_option(jasper TYPE boolean) 5 | qt_commandline_option(mng TYPE boolean) 6 | qt_commandline_option(tiff TYPE enum VALUES no qt system) 7 | qt_commandline_option(webp TYPE enum VALUES no qt system) 8 | -------------------------------------------------------------------------------- /src/plugins/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2022 The Qt Company Ltd. 2 | # SPDX-License-Identifier: BSD-3-Clause 3 | 4 | add_subdirectory(imageformats) 5 | -------------------------------------------------------------------------------- /src/plugins/imageformats/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2022 The Qt Company Ltd. 2 | # SPDX-License-Identifier: BSD-3-Clause 3 | 4 | qt_feature_module_begin( 5 | NO_MODULE 6 | PUBLIC_FILE "qtimageformats-config.h" 7 | PRIVATE_FILE "qtimageformats-config_p.h" 8 | ) 9 | include(../../imageformats/configure.cmake) 10 | qt_feature_module_end(NO_MODULE) 11 | 12 | add_subdirectory(tga) 13 | add_subdirectory(wbmp) 14 | if(QT_FEATURE_tiff) 15 | add_subdirectory(tiff) 16 | endif() 17 | if(QT_FEATURE_webp) 18 | add_subdirectory(webp) 19 | endif() 20 | if(APPLE) 21 | add_subdirectory(macheif) 22 | endif() 23 | if(QT_FEATURE_regularexpression) 24 | add_subdirectory(icns) 25 | endif() 26 | if(QT_FEATURE_mng) 27 | add_subdirectory(mng) 28 | endif() 29 | if(QT_FEATURE_jasper) 30 | add_subdirectory(jp2) 31 | endif() 32 | if(APPLE AND NOT QT_FEATURE_jasper) 33 | add_subdirectory(macjp2) 34 | endif() 35 | -------------------------------------------------------------------------------- /src/plugins/imageformats/dds/README: -------------------------------------------------------------------------------- 1 | [Useful links] 2 | * http://en.wikipedia.org/wiki/DirectDraw_Surface - Wiki:) 3 | * http://msdn.microsoft.com/en-us/library/bb943990.aspx - MSDN 4 | * http://msdn.microsoft.com/en-us/library/bb943991(v=vs.85).aspx - Programming Guide 5 | * http://msdn.microsoft.com/en-us/library/bb943982(v=vs.85).aspx - DDS Header 6 | * http://msdn.microsoft.com/en-us/library/bb943983(v=vs.85).aspx - DDS Header DXT10 7 | * http://msdn.microsoft.com/en-us/library/bb943984(v=vs.85).aspx - PixelFormat 8 | * http://msdn.microsoft.com/en-us/library/windows/desktop/bb153349(v=vs.85).aspx - Surface formats (aka Format enum) 9 | * http://www.poopinmymouth.com/tutorial/dds_types.html - A bit better explanation than in MSDN 10 | * http://en.wikipedia.org/wiki/S3_Texture_Compression - DXT compression 11 | -------------------------------------------------------------------------------- /src/plugins/imageformats/dds/dds.json: -------------------------------------------------------------------------------- 1 | { 2 | "Keys": [ "dds" ], 3 | "MimeTypes": [ "image/x-dds" ] 4 | } 5 | -------------------------------------------------------------------------------- /src/plugins/imageformats/dds/main.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 The Qt Company Ltd. 2 | // Copyright (C) 2016 Ivan Komissarov. 3 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only 4 | 5 | #include 6 | 7 | #include "qddshandler.h" 8 | 9 | #ifndef QT_NO_IMAGEFORMATPLUGIN 10 | 11 | #ifndef QT_NO_DATASTREAM 12 | 13 | QT_BEGIN_NAMESPACE 14 | 15 | class QDDSPlugin : public QImageIOPlugin 16 | { 17 | Q_OBJECT 18 | Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QImageIOHandlerFactoryInterface" FILE "dds.json") 19 | public: 20 | Capabilities capabilities(QIODevice *device, const QByteArray &format) const override; 21 | QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const override; 22 | }; 23 | 24 | QImageIOPlugin::Capabilities QDDSPlugin::capabilities(QIODevice *device, const QByteArray &format) const 25 | { 26 | if (format == QByteArrayLiteral("dds")) 27 | return Capabilities(CanRead | CanWrite); 28 | if (!format.isEmpty()) 29 | return 0; 30 | if (!device || !device->isOpen()) 31 | return 0; 32 | 33 | Capabilities cap; 34 | if (device->isReadable() && QDDSHandler::canRead(device)) 35 | cap |= CanRead; 36 | if (device->isWritable()) 37 | cap |= CanWrite; 38 | return cap; 39 | } 40 | 41 | QImageIOHandler *QDDSPlugin::create(QIODevice *device, const QByteArray &format) const 42 | { 43 | QImageIOHandler *handler = new QDDSHandler; 44 | handler->setDevice(device); 45 | handler->setFormat(format); 46 | return handler; 47 | } 48 | 49 | QT_END_NAMESPACE 50 | 51 | #include "main.moc" 52 | 53 | #endif // QT_NO_DATASTREAM 54 | 55 | #endif // QT_NO_IMAGEFORMATPLUGIN 56 | -------------------------------------------------------------------------------- /src/plugins/imageformats/dds/qddshandler.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 The Qt Company Ltd. 2 | // Copyright (C) 2016 Ivan Komissarov. 3 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only 4 | 5 | #ifndef QDDSHANDLER_H 6 | #define QDDSHANDLER_H 7 | 8 | #include 9 | #include "ddsheader.h" 10 | 11 | #ifndef QT_NO_DATASTREAM 12 | 13 | QT_BEGIN_NAMESPACE 14 | 15 | class QDDSHandler : public QImageIOHandler 16 | { 17 | public: 18 | QDDSHandler(); 19 | 20 | bool canRead() const override; 21 | bool read(QImage *image) override; 22 | bool write(const QImage &image) override; 23 | 24 | QVariant option(QImageIOHandler::ImageOption option) const override; 25 | void setOption(ImageOption option, const QVariant &value) override; 26 | bool supportsOption(QImageIOHandler::ImageOption option) const override; 27 | 28 | int imageCount() const override; 29 | bool jumpToImage(int imageNumber) override; 30 | 31 | static bool canRead(QIODevice *device); 32 | 33 | private: 34 | bool ensureScanned() const; 35 | bool verifyHeader(const DDSHeader &dds) const; 36 | 37 | private: 38 | enum ScanState { 39 | ScanError = -1, 40 | ScanNotScanned = 0, 41 | ScanSuccess = 1, 42 | }; 43 | 44 | DDSHeader m_header; 45 | int m_format; 46 | DDSHeaderDX10 m_header10; 47 | int m_currentImage; 48 | mutable ScanState m_scanState; 49 | }; 50 | 51 | QT_END_NAMESPACE 52 | 53 | #endif // QT_NO_DATASTREAM 54 | 55 | #endif // QDDSHANDLER_H 56 | -------------------------------------------------------------------------------- /src/plugins/imageformats/icns/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2022 The Qt Company Ltd. 2 | # SPDX-License-Identifier: BSD-3-Clause 3 | 4 | ##################################################################### 5 | ## QICNSPlugin Plugin: 6 | ##################################################################### 7 | 8 | qt_internal_add_plugin(QICNSPlugin 9 | OUTPUT_NAME qicns 10 | PLUGIN_TYPE imageformats 11 | SOURCES 12 | main.cpp 13 | qicnshandler.cpp qicnshandler_p.h 14 | DEFINES 15 | QT_NO_CAST_FROM_ASCII 16 | QT_NO_CAST_TO_ASCII 17 | LIBRARIES 18 | Qt::Core 19 | Qt::Gui 20 | ) 21 | -------------------------------------------------------------------------------- /src/plugins/imageformats/icns/README: -------------------------------------------------------------------------------- 1 | [Useful links] 2 | * http://en.wikipedia.org/wiki/Apple_Icon_Image_format - Wikipedia article about ICNS format 3 | * http://www.macdisk.com/maciconen.php - Unofficial tech info about the format -------------------------------------------------------------------------------- /src/plugins/imageformats/icns/icns.json: -------------------------------------------------------------------------------- 1 | { 2 | "Keys": [ "icns" ], 3 | "MimeTypes": [ "image/x-icns" ] 4 | } 5 | -------------------------------------------------------------------------------- /src/plugins/imageformats/icns/main.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 The Qt Company Ltd. 2 | // Copyright (C) 2016 Alex Char. 3 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only 4 | 5 | #include 6 | #include "qicnshandler_p.h" 7 | 8 | #ifndef QT_NO_IMAGEFORMATPLUGIN 9 | #ifndef QT_NO_DATASTREAM 10 | 11 | QT_BEGIN_NAMESPACE 12 | 13 | class QICNSPlugin : public QImageIOPlugin 14 | { 15 | Q_OBJECT 16 | Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QImageIOHandlerFactoryInterface" FILE "icns.json") 17 | 18 | public: 19 | Capabilities capabilities(QIODevice *device, const QByteArray &format) const override; 20 | QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const override; 21 | }; 22 | 23 | QImageIOPlugin::Capabilities QICNSPlugin::capabilities(QIODevice *device, const QByteArray &format) const 24 | { 25 | if (format == QByteArrayLiteral("icns")) 26 | return Capabilities(CanRead | CanWrite); 27 | Capabilities cap; 28 | if (!format.isEmpty()) 29 | return cap; 30 | if (!device || !device->isOpen()) 31 | return cap; 32 | 33 | if (device->isReadable() && QICNSHandler::canRead(device)) 34 | cap |= CanRead; 35 | if (device->isWritable()) 36 | cap |= CanWrite; 37 | return cap; 38 | } 39 | 40 | QImageIOHandler *QICNSPlugin::create(QIODevice *device, const QByteArray &format) const 41 | { 42 | QImageIOHandler *handler = new QICNSHandler(); 43 | handler->setDevice(device); 44 | handler->setFormat(format); 45 | return handler; 46 | } 47 | 48 | QT_END_NAMESPACE 49 | 50 | #include "main.moc" 51 | 52 | #endif // QT_NO_DATASTREAM 53 | 54 | #endif // QT_NO_IMAGEFORMATPLUGIN 55 | -------------------------------------------------------------------------------- /src/plugins/imageformats/jp2/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2022 The Qt Company Ltd. 2 | # SPDX-License-Identifier: BSD-3-Clause 3 | 4 | ##################################################################### 5 | ## QJp2Plugin Plugin: 6 | ##################################################################### 7 | 8 | qt_internal_add_plugin(QJp2Plugin 9 | OUTPUT_NAME qjp2 10 | PLUGIN_TYPE imageformats 11 | SOURCES 12 | main.cpp 13 | qjp2handler.cpp qjp2handler_p.h 14 | LIBRARIES 15 | WrapJasper::WrapJasper 16 | Qt::Core 17 | Qt::Gui 18 | ) 19 | -------------------------------------------------------------------------------- /src/plugins/imageformats/jp2/jp2.json: -------------------------------------------------------------------------------- 1 | { 2 | "Keys": [ "jp2" ], 3 | "MimeTypes": [ "image/jp2", "image/jpx", "image/jpm", "video/mj2" ] 4 | } 5 | -------------------------------------------------------------------------------- /src/plugins/imageformats/jp2/main.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 The Qt Company Ltd. 2 | // Copyright (C) 2016 Petroules Corporation. 3 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only 4 | 5 | #include 6 | #include 7 | 8 | #ifndef QT_NO_IMAGEFORMATPLUGIN 9 | 10 | #include "qjp2handler_p.h" 11 | 12 | #include 13 | #include 14 | 15 | QT_BEGIN_NAMESPACE 16 | 17 | class QJp2Plugin : public QImageIOPlugin 18 | { 19 | Q_OBJECT 20 | Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QImageIOHandlerFactoryInterface" FILE "jp2.json") 21 | 22 | public: 23 | Capabilities capabilities(QIODevice *device, const QByteArray &format) const override; 24 | QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const override; 25 | }; 26 | 27 | QImageIOPlugin::Capabilities QJp2Plugin::capabilities(QIODevice *device, const QByteArray &format) const 28 | { 29 | if (format == "jp2" || format == "j2k") 30 | return Capabilities(CanRead | CanWrite); 31 | Capabilities cap; 32 | if (!format.isEmpty()) 33 | return cap; 34 | if (!device->isOpen()) 35 | return cap; 36 | 37 | if (device->isReadable() && QJp2Handler::canRead(device, 0)) 38 | cap |= CanRead; 39 | if (device->isWritable()) 40 | cap |= CanWrite; 41 | return cap; 42 | } 43 | 44 | QImageIOHandler *QJp2Plugin::create(QIODevice *device, const QByteArray &format) const 45 | { 46 | QJp2Handler *handler = new QJp2Handler(); 47 | handler->setDevice(device); 48 | handler->setFormat(format); 49 | return handler; 50 | } 51 | 52 | QT_END_NAMESPACE 53 | 54 | #include "main.moc" 55 | 56 | #endif // !QT_NO_IMAGEFORMATPLUGIN 57 | -------------------------------------------------------------------------------- /src/plugins/imageformats/jp2/qjp2handler_p.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 The Qt Company Ltd. 2 | // Copyright (C) 2016 Petroules Corporation. 3 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only 4 | 5 | #ifndef QJP2HANDLER_H 6 | #define QJP2HANDLER_H 7 | 8 | #include 9 | #include 10 | 11 | QT_BEGIN_NAMESPACE 12 | 13 | class QImage; 14 | class QByteArray; 15 | class QIODevice; 16 | class QVariant; 17 | class QJp2HandlerPrivate; 18 | 19 | class QJp2Handler : public QImageIOHandler 20 | { 21 | public: 22 | QJp2Handler(); 23 | ~QJp2Handler(); 24 | static bool canRead(QIODevice *iod, QByteArray *subType); 25 | bool canRead() const override; 26 | bool read(QImage *image) override; 27 | bool write(const QImage &image) override; 28 | QVariant option(ImageOption option) const override; 29 | void setOption(ImageOption option, const QVariant &value) override; 30 | bool supportsOption(ImageOption option) const override; 31 | 32 | private: 33 | Q_DECLARE_PRIVATE(QJp2Handler) 34 | QScopedPointer d_ptr; 35 | }; 36 | 37 | QT_END_NAMESPACE 38 | 39 | #endif // QJP2HANDLER_P_H 40 | -------------------------------------------------------------------------------- /src/plugins/imageformats/macheif/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2022 The Qt Company Ltd. 2 | # SPDX-License-Identifier: BSD-3-Clause 3 | 4 | ##################################################################### 5 | ## QMacHeifPlugin Plugin: 6 | ##################################################################### 7 | 8 | qt_internal_find_apple_system_framework(FWCoreFoundation 9 | CoreFoundation) 10 | qt_internal_find_apple_system_framework(FWCoreGraphics CoreGraphics) 11 | qt_internal_find_apple_system_framework(FWImageIO ImageIO) 12 | 13 | qt_internal_add_plugin(QMacHeifPlugin 14 | OUTPUT_NAME qmacheif 15 | PLUGIN_TYPE imageformats 16 | SOURCES 17 | ../shared/qiiofhelpers.cpp ../shared/qiiofhelpers_p.h 18 | main.cpp 19 | qmacheifhandler.cpp qmacheifhandler.h 20 | INCLUDE_DIRECTORIES 21 | ../shared 22 | DEFINES 23 | NS_IIOF_HELPERS=QMacHeif 24 | LIBRARIES 25 | ${FWCoreFoundation} 26 | ${FWCoreGraphics} 27 | ${FWImageIO} 28 | Qt::Core 29 | Qt::CorePrivate 30 | Qt::Gui 31 | Qt::GuiPrivate 32 | ) 33 | -------------------------------------------------------------------------------- /src/plugins/imageformats/macheif/macheif.json: -------------------------------------------------------------------------------- 1 | { 2 | "Keys": [ "heic", "heif" ], 3 | "MimeTypes": [ "image/heic", "image/heif" ] 4 | } 5 | -------------------------------------------------------------------------------- /src/plugins/imageformats/macheif/main.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only 3 | 4 | #ifndef QT_NO_IMAGEFORMATPLUGIN 5 | 6 | #include 7 | 8 | QT_BEGIN_NAMESPACE 9 | 10 | class QMacHeifPlugin : public QImageIOPlugin 11 | { 12 | Q_OBJECT 13 | Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QImageIOHandlerFactoryInterface" FILE "macheif.json") 14 | 15 | public: 16 | Capabilities capabilities(QIODevice *device, const QByteArray &format) const override; 17 | QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const override; 18 | }; 19 | 20 | QImageIOPlugin::Capabilities QMacHeifPlugin::capabilities(QIODevice *device, const QByteArray &format) const 21 | { 22 | static const Capabilities sysCaps = QIIOFHelpers::systemCapabilities(QStringLiteral("public.heic")); 23 | 24 | Capabilities cap; 25 | if (!sysCaps) 26 | return cap; 27 | if (format == "heic" || format == "heif") 28 | return sysCaps; 29 | if (!format.isEmpty()) 30 | return cap; 31 | if (!device->isOpen()) 32 | return cap; 33 | 34 | if (sysCaps.testFlag(CanRead) && device->isReadable() && QMacHeifHandler::canRead(device)) 35 | cap |= CanRead; 36 | if (sysCaps.testFlag(CanWrite) && device->isWritable()) 37 | cap |= CanWrite; 38 | return cap; 39 | } 40 | 41 | QImageIOHandler *QMacHeifPlugin::create(QIODevice *device, const QByteArray &format) const 42 | { 43 | QMacHeifHandler *handler = new QMacHeifHandler(); 44 | handler->setDevice(device); 45 | handler->setFormat(format); 46 | return handler; 47 | } 48 | 49 | QT_END_NAMESPACE 50 | 51 | #include "main.moc" 52 | 53 | #endif // !QT_NO_IMAGEFORMATPLUGIN 54 | -------------------------------------------------------------------------------- /src/plugins/imageformats/macheif/qmacheifhandler.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only 3 | // Qt-Security score:critical reason:data-parser 4 | 5 | #include "qmacheifhandler.h" 6 | #include 7 | 8 | QT_BEGIN_NAMESPACE 9 | 10 | QMacHeifHandler::QMacHeifHandler() 11 | : d(new QIIOFHelper(this)) 12 | { 13 | } 14 | 15 | QMacHeifHandler::~QMacHeifHandler() 16 | { 17 | } 18 | 19 | bool QMacHeifHandler::canRead(QIODevice *iod) 20 | { 21 | bool bCanRead = false; 22 | char buf[12]; 23 | if (iod && iod->peek(buf, 12) == 12) { 24 | bCanRead = (!qstrncmp(buf + 4, "ftyp", 4) && 25 | (!qstrncmp(buf + 8, "heic", 4) || 26 | !qstrncmp(buf + 8, "heix", 4) || 27 | !qstrncmp(buf + 8, "msf1", 4) || 28 | !qstrncmp(buf + 8, "mif1", 4))); 29 | } 30 | return bCanRead; 31 | } 32 | 33 | bool QMacHeifHandler::canRead() const 34 | { 35 | if (canRead(device())) { 36 | setFormat("heic"); 37 | return true; 38 | } 39 | return false; 40 | } 41 | 42 | bool QMacHeifHandler::read(QImage *image) 43 | { 44 | return d->readImage(image); 45 | } 46 | 47 | bool QMacHeifHandler::write(const QImage &image) 48 | { 49 | return d->writeImage(image, QStringLiteral("public.heic")); 50 | } 51 | 52 | QVariant QMacHeifHandler::option(ImageOption option) const 53 | { 54 | return d->imageProperty(option); 55 | } 56 | 57 | void QMacHeifHandler::setOption(ImageOption option, const QVariant &value) 58 | { 59 | d->setOption(option, value); 60 | } 61 | 62 | bool QMacHeifHandler::supportsOption(ImageOption option) const 63 | { 64 | return option == Quality 65 | || option == Size 66 | || option == ImageTransformation; 67 | } 68 | 69 | QT_END_NAMESPACE 70 | -------------------------------------------------------------------------------- /src/plugins/imageformats/macheif/qmacheifhandler.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only 3 | 4 | #ifndef QMACHEIFHANDLER_H 5 | #define QMACHEIFHANDLER_H 6 | 7 | #include 8 | #include 9 | #include "qiiofhelpers_p.h" 10 | 11 | QT_BEGIN_NAMESPACE 12 | 13 | using namespace NS_IIOF_HELPERS; 14 | 15 | class QImage; 16 | class QByteArray; 17 | class QIODevice; 18 | class QVariant; 19 | 20 | class QMacHeifHandler : public QImageIOHandler 21 | { 22 | public: 23 | QMacHeifHandler(); 24 | ~QMacHeifHandler() override; 25 | 26 | bool canRead() const override; 27 | bool read(QImage *image) override; 28 | bool write(const QImage &image) override; 29 | QVariant option(ImageOption option) const override; 30 | void setOption(ImageOption option, const QVariant &value) override; 31 | bool supportsOption(ImageOption option) const override; 32 | 33 | static bool canRead(QIODevice *iod); 34 | 35 | private: 36 | QScopedPointer d; 37 | }; 38 | 39 | QT_END_NAMESPACE 40 | 41 | #endif // QMACHEIFHANDLER_P_H 42 | -------------------------------------------------------------------------------- /src/plugins/imageformats/macjp2/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2022 The Qt Company Ltd. 2 | # SPDX-License-Identifier: BSD-3-Clause 3 | 4 | ##################################################################### 5 | ## QMacJp2Plugin Plugin: 6 | ##################################################################### 7 | 8 | qt_internal_add_plugin(QMacJp2Plugin 9 | OUTPUT_NAME qmacjp2 10 | PLUGIN_TYPE imageformats 11 | SOURCES 12 | ../shared/qiiofhelpers.cpp ../shared/qiiofhelpers_p.h 13 | main.cpp 14 | qmacjp2handler.cpp qmacjp2handler.h 15 | INCLUDE_DIRECTORIES 16 | ../shared 17 | DEFINES 18 | NS_IIOF_HELPERS=QMacJp2 19 | LIBRARIES 20 | ${FWCoreFoundation} 21 | ${FWCoreGraphics} 22 | ${FWImageIO} 23 | Qt::Core 24 | Qt::CorePrivate 25 | Qt::Gui 26 | Qt::GuiPrivate 27 | ) 28 | -------------------------------------------------------------------------------- /src/plugins/imageformats/macjp2/macjp2.json: -------------------------------------------------------------------------------- 1 | { 2 | "Keys": [ "jp2" ], 3 | "MimeTypes": [ "image/jp2", "image/jpx", "image/jpm", "video/mj2" ] 4 | } 5 | -------------------------------------------------------------------------------- /src/plugins/imageformats/macjp2/main.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only 3 | 4 | #ifndef QT_NO_IMAGEFORMATPLUGIN 5 | 6 | #include "qmacjp2handler.h" 7 | 8 | QT_BEGIN_NAMESPACE 9 | 10 | class QMacJp2Plugin : public QImageIOPlugin 11 | { 12 | Q_OBJECT 13 | Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QImageIOHandlerFactoryInterface" FILE "macjp2.json") 14 | 15 | public: 16 | Capabilities capabilities(QIODevice *device, const QByteArray &format) const override; 17 | QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const override; 18 | }; 19 | 20 | QImageIOPlugin::Capabilities QMacJp2Plugin::capabilities(QIODevice *device, const QByteArray &format) const 21 | { 22 | if (format == "jp2") 23 | return Capabilities(CanRead | CanWrite); 24 | Capabilities cap; 25 | if (!format.isEmpty()) 26 | return cap; 27 | if (!device->isOpen()) 28 | return cap; 29 | 30 | if (device->isReadable() && QMacJp2Handler::canRead(device)) 31 | cap |= CanRead; 32 | if (device->isWritable()) 33 | cap |= CanWrite; 34 | return cap; 35 | } 36 | 37 | QImageIOHandler *QMacJp2Plugin::create(QIODevice *device, const QByteArray &format) const 38 | { 39 | QMacJp2Handler *handler = new QMacJp2Handler(); 40 | handler->setDevice(device); 41 | handler->setFormat(format); 42 | return handler; 43 | } 44 | 45 | QT_END_NAMESPACE 46 | 47 | #include "main.moc" 48 | 49 | #endif // !QT_NO_IMAGEFORMATPLUGIN 50 | -------------------------------------------------------------------------------- /src/plugins/imageformats/macjp2/qmacjp2handler.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only 3 | // Qt-Security score:critical reason:data-parser 4 | 5 | #include "qmacjp2handler.h" 6 | #include "qiiofhelpers_p.h" 7 | #include 8 | 9 | QT_BEGIN_NAMESPACE 10 | 11 | using namespace NS_IIOF_HELPERS; 12 | 13 | class QMacJp2HandlerPrivate 14 | { 15 | Q_DECLARE_PUBLIC(QMacJp2Handler) 16 | Q_DISABLE_COPY(QMacJp2HandlerPrivate) 17 | public: 18 | QMacJp2HandlerPrivate(QMacJp2Handler *q_ptr) 19 | : writeQuality(-1), q_ptr(q_ptr) 20 | {} 21 | 22 | int writeQuality; 23 | QMacJp2Handler *q_ptr; 24 | }; 25 | 26 | 27 | QMacJp2Handler::QMacJp2Handler() 28 | : d_ptr(new QMacJp2HandlerPrivate(this)) 29 | { 30 | } 31 | 32 | QMacJp2Handler::~QMacJp2Handler() 33 | { 34 | } 35 | 36 | bool QMacJp2Handler::canRead(QIODevice *iod) 37 | { 38 | bool bCanRead = false; 39 | char buf[12]; 40 | if (iod && iod->peek(buf, 12) == 12) 41 | bCanRead = !memcmp(buf, "\000\000\000\fjP \r\n\207\n", 12); 42 | return bCanRead; 43 | } 44 | 45 | bool QMacJp2Handler::canRead() const 46 | { 47 | if (canRead(device())) { 48 | setFormat("jp2"); 49 | return true; 50 | } 51 | return false; 52 | } 53 | 54 | bool QMacJp2Handler::read(QImage *image) 55 | { 56 | return QIIOFHelpers::readImage(this, image); 57 | } 58 | 59 | bool QMacJp2Handler::write(const QImage &image) 60 | { 61 | return QIIOFHelpers::writeImage(this, image, QStringLiteral("public.jpeg-2000")); 62 | } 63 | 64 | QVariant QMacJp2Handler::option(ImageOption option) const 65 | { 66 | Q_D(const QMacJp2Handler); 67 | if (option == Quality) 68 | return QVariant(d->writeQuality); 69 | return QVariant(); 70 | } 71 | 72 | void QMacJp2Handler::setOption(ImageOption option, const QVariant &value) 73 | { 74 | Q_D(QMacJp2Handler); 75 | if (option == Quality) { 76 | bool ok; 77 | const int quality = value.toInt(&ok); 78 | if (ok) 79 | d->writeQuality = quality; 80 | } 81 | } 82 | 83 | bool QMacJp2Handler::supportsOption(ImageOption option) const 84 | { 85 | return (option == Quality); 86 | } 87 | 88 | QT_END_NAMESPACE 89 | -------------------------------------------------------------------------------- /src/plugins/imageformats/macjp2/qmacjp2handler.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only 3 | 4 | #ifndef QMACJP2HANDLER_H 5 | #define QMACJP2HANDLER_H 6 | 7 | #include 8 | #include 9 | 10 | QT_BEGIN_NAMESPACE 11 | 12 | class QImage; 13 | class QByteArray; 14 | class QIODevice; 15 | class QVariant; 16 | class QMacJp2HandlerPrivate; 17 | 18 | class QMacJp2Handler : public QImageIOHandler 19 | { 20 | public: 21 | QMacJp2Handler(); 22 | ~QMacJp2Handler(); 23 | 24 | bool canRead() const override; 25 | bool read(QImage *image) override; 26 | bool write(const QImage &image) override; 27 | QVariant option(ImageOption option) const override; 28 | void setOption(ImageOption option, const QVariant &value) override; 29 | bool supportsOption(ImageOption option) const override; 30 | 31 | static bool canRead(QIODevice *iod); 32 | 33 | private: 34 | Q_DECLARE_PRIVATE(QMacJp2Handler) 35 | QScopedPointer d_ptr; 36 | }; 37 | 38 | QT_END_NAMESPACE 39 | 40 | #endif // QMACJP2HANDLER_P_H 41 | -------------------------------------------------------------------------------- /src/plugins/imageformats/mng/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2022 The Qt Company Ltd. 2 | # SPDX-License-Identifier: BSD-3-Clause 3 | 4 | ##################################################################### 5 | ## QMngPlugin Plugin: 6 | ##################################################################### 7 | 8 | qt_internal_add_plugin(QMngPlugin 9 | OUTPUT_NAME qmng 10 | PLUGIN_TYPE imageformats 11 | SOURCES 12 | main.cpp 13 | qmnghandler.cpp qmnghandler_p.h 14 | LIBRARIES 15 | Libmng::Libmng 16 | Qt::Core 17 | Qt::Gui 18 | ) 19 | -------------------------------------------------------------------------------- /src/plugins/imageformats/mng/main.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only 3 | 4 | #include 5 | #include 6 | 7 | #ifndef QT_NO_IMAGEFORMATPLUGIN 8 | 9 | #ifdef QT_NO_IMAGEFORMAT_MNG 10 | #undef QT_NO_IMAGEFORMAT_MNG 11 | #endif 12 | #include "qmnghandler_p.h" 13 | 14 | #include 15 | #include 16 | 17 | QT_BEGIN_NAMESPACE 18 | 19 | class QMngPlugin : public QImageIOPlugin 20 | { 21 | Q_OBJECT 22 | Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QImageIOHandlerFactoryInterface" FILE "mng.json") 23 | 24 | public: 25 | Capabilities capabilities(QIODevice *device, const QByteArray &format) const override; 26 | QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const override; 27 | }; 28 | 29 | QImageIOPlugin::Capabilities QMngPlugin::capabilities(QIODevice *device, const QByteArray &format) const 30 | { 31 | if (format == "mng") 32 | return Capabilities(CanRead); 33 | Capabilities cap; 34 | if (!format.isEmpty()) 35 | return cap; 36 | if (!device->isOpen()) 37 | return cap; 38 | 39 | if (device->isReadable() && QMngHandler::canRead(device)) 40 | cap |= CanRead; 41 | return cap; 42 | } 43 | 44 | QImageIOHandler *QMngPlugin::create(QIODevice *device, const QByteArray &format) const 45 | { 46 | QMngHandler *hand = new QMngHandler(); 47 | hand->setDevice(device); 48 | hand->setFormat(format); 49 | return hand; 50 | } 51 | 52 | QT_END_NAMESPACE 53 | 54 | #include "main.moc" 55 | 56 | #endif // !QT_NO_IMAGEFORMATPLUGIN 57 | -------------------------------------------------------------------------------- /src/plugins/imageformats/mng/mng.json: -------------------------------------------------------------------------------- 1 | { 2 | "Keys": [ "mng" ], 3 | "MimeTypes": [ "video/x-mng" ] 4 | } 5 | -------------------------------------------------------------------------------- /src/plugins/imageformats/mng/qmnghandler_p.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only 3 | 4 | #ifndef QMNGHANDLER_P_H 5 | #define QMNGHANDLER_P_H 6 | 7 | #include 8 | #include 9 | 10 | QT_BEGIN_NAMESPACE 11 | 12 | class QImage; 13 | class QByteArray; 14 | class QIODevice; 15 | class QVariant; 16 | class QMngHandlerPrivate; 17 | 18 | class QMngHandler : public QImageIOHandler 19 | { 20 | public: 21 | QMngHandler(); 22 | ~QMngHandler(); 23 | bool canRead() const override; 24 | bool read(QImage *image) override; 25 | bool write(const QImage &image) override; 26 | int currentImageNumber() const override; 27 | int imageCount() const override; 28 | bool jumpToImage(int imageNumber) override; 29 | bool jumpToNextImage() override; 30 | int loopCount() const override; 31 | int nextImageDelay() const override; 32 | static bool canRead(QIODevice *device); 33 | QVariant option(ImageOption option) const override; 34 | void setOption(ImageOption option, const QVariant & value) override; 35 | bool supportsOption(ImageOption option) const override; 36 | 37 | private: 38 | Q_DECLARE_PRIVATE(QMngHandler) 39 | QScopedPointer d_ptr; 40 | }; 41 | 42 | QT_END_NAMESPACE 43 | 44 | #endif // QMNGHANDLER_P_H 45 | -------------------------------------------------------------------------------- /src/plugins/imageformats/shared/qiiofhelpers.pri: -------------------------------------------------------------------------------- 1 | INCLUDEPATH += $$PWD 2 | 3 | HEADERS += $$PWD/qiiofhelpers_p.h 4 | 5 | SOURCES += $$PWD/qiiofhelpers.cpp 6 | -------------------------------------------------------------------------------- /src/plugins/imageformats/shared/qiiofhelpers_p.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only 3 | 4 | #ifndef QIIOFHELPERS_P_H 5 | #define QIIOFHELPERS_P_H 6 | 7 | // 8 | // W A R N I N G 9 | // ------------- 10 | // 11 | // This file is not part of the Qt API. It exists for the convenience 12 | // of other Qt classes. This header file may change from version to 13 | // version without notice, or even be removed. 14 | // 15 | // We mean it. 16 | // 17 | 18 | #include 19 | #include 20 | #include 21 | #include 22 | 23 | QT_BEGIN_NAMESPACE 24 | 25 | namespace NS_IIOF_HELPERS { 26 | 27 | /* 28 | Functions to utilize the native ImageIO Framework in OS X and iOS 29 | */ 30 | 31 | class QIIOFHelpers 32 | { 33 | public: 34 | static QImageIOPlugin::Capabilities systemCapabilities(const QString &uti); 35 | static bool readImage(QImageIOHandler *q_ptr, QImage *out); 36 | static bool writeImage(QImageIOHandler *q_ptr, const QImage &in, const QString &uti); 37 | }; 38 | 39 | class QIIOFHelper 40 | { 41 | public: 42 | QIIOFHelper(QImageIOHandler *q); 43 | 44 | bool readImage(QImage *out); 45 | bool writeImage(const QImage &in, const QString &uti); 46 | QVariant imageProperty(QImageIOHandler::ImageOption option); 47 | void setOption(QImageIOHandler::ImageOption option, const QVariant &value); 48 | 49 | protected: 50 | bool initRead(); 51 | bool getIntProperty(CFStringRef property, int *value); 52 | 53 | QImageIOHandler *q_ptr = nullptr; 54 | QList writeOptions; 55 | QCFType cgDataProvider = nullptr; 56 | QCFType cgImageSource = nullptr; 57 | QCFType cfImageDict = nullptr; 58 | }; 59 | 60 | } 61 | 62 | QT_END_NAMESPACE 63 | 64 | #endif 65 | -------------------------------------------------------------------------------- /src/plugins/imageformats/tga/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2022 The Qt Company Ltd. 2 | # SPDX-License-Identifier: BSD-3-Clause 3 | 4 | ##################################################################### 5 | ## QTgaPlugin Plugin: 6 | ##################################################################### 7 | 8 | qt_internal_add_plugin(QTgaPlugin 9 | OUTPUT_NAME qtga 10 | PLUGIN_TYPE imageformats 11 | SOURCES 12 | main.cpp 13 | qtgafile.cpp qtgafile.h 14 | qtgahandler.cpp qtgahandler.h 15 | LIBRARIES 16 | Qt::Core 17 | Qt::Gui 18 | ) 19 | -------------------------------------------------------------------------------- /src/plugins/imageformats/tga/main.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only 3 | 4 | #include 5 | #include 6 | 7 | #ifndef QT_NO_IMAGEFORMATPLUGIN 8 | 9 | #ifdef QT_NO_IMAGEFORMAT_TGA 10 | #undef QT_NO_IMAGEFORMAT_TGA 11 | #endif 12 | 13 | #include "qtgahandler.h" 14 | 15 | QT_BEGIN_NAMESPACE 16 | 17 | class QTgaPlugin : public QImageIOPlugin 18 | { 19 | Q_OBJECT 20 | Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QImageIOHandlerFactoryInterface" FILE "tga.json") 21 | 22 | public: 23 | Capabilities capabilities(QIODevice * device, const QByteArray & format) const override; 24 | QImageIOHandler * create(QIODevice * device, const QByteArray & format = QByteArray()) const override; 25 | }; 26 | 27 | QImageIOPlugin::Capabilities QTgaPlugin::capabilities(QIODevice *device, const QByteArray &format) const 28 | { 29 | if (format == "tga") 30 | return Capabilities(CanRead); 31 | Capabilities cap; 32 | if (!format.isEmpty()) 33 | return cap; 34 | if (!device->isOpen()) 35 | return cap; 36 | 37 | if (device->isReadable() && QTgaHandler::canRead(device)) 38 | cap |= CanRead; 39 | return cap; 40 | } 41 | 42 | QImageIOHandler* QTgaPlugin::create(QIODevice *device, const QByteArray &format) const 43 | { 44 | QImageIOHandler *tgaHandler = new QTgaHandler(); 45 | tgaHandler->setDevice(device); 46 | tgaHandler->setFormat(format); 47 | return tgaHandler; 48 | } 49 | 50 | QT_END_NAMESPACE 51 | 52 | #include "main.moc" 53 | 54 | #endif /* QT_NO_IMAGEFORMATPLUGIN */ 55 | -------------------------------------------------------------------------------- /src/plugins/imageformats/tga/qtgahandler.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only 3 | // Qt-Security score:critical reason:data-parser 4 | 5 | #include "qtgahandler.h" 6 | #include "qtgafile.h" 7 | 8 | #include 9 | #include 10 | #include 11 | 12 | QT_BEGIN_NAMESPACE 13 | 14 | QTgaHandler::QTgaHandler() 15 | : QImageIOHandler() 16 | , tga(0) 17 | { 18 | } 19 | 20 | QTgaHandler::~QTgaHandler() 21 | { 22 | delete tga; 23 | } 24 | 25 | bool QTgaHandler::canRead() const 26 | { 27 | if (!tga) 28 | tga = new QTgaFile(device()); 29 | if (tga->isValid()) 30 | { 31 | setFormat("tga"); 32 | return true; 33 | } 34 | qWarning("QTgaHandler::canRead(): %s", qPrintable(tga->errorMessage())); 35 | return false; 36 | } 37 | 38 | bool QTgaHandler::canRead(QIODevice *device) 39 | { 40 | if (!device) { 41 | qWarning("QTgaHandler::canRead() called with no device"); 42 | return false; 43 | } 44 | 45 | // TGA reader implementation needs a seekable QIODevice, so 46 | // sequential devices are not supported 47 | if (device->isSequential()) 48 | return false; 49 | qint64 pos = device->pos(); 50 | bool isValid; 51 | { 52 | QTgaFile tga(device); 53 | isValid = tga.isValid(); 54 | } 55 | device->seek(pos); 56 | return isValid; 57 | } 58 | 59 | bool QTgaHandler::read(QImage *image) 60 | { 61 | if (!canRead()) 62 | return false; 63 | *image = tga->readImage(); 64 | return !image->isNull(); 65 | } 66 | 67 | QVariant QTgaHandler::option(ImageOption option) const 68 | { 69 | if (option == Size && canRead()) { 70 | return tga->size(); 71 | } else if (option == CompressionRatio) { 72 | return tga->compression(); 73 | } else if (option == ImageFormat) { 74 | return QImage::Format_ARGB32; 75 | } 76 | return QVariant(); 77 | } 78 | 79 | void QTgaHandler::setOption(ImageOption option, const QVariant &value) 80 | { 81 | Q_UNUSED(option); 82 | Q_UNUSED(value); 83 | } 84 | 85 | bool QTgaHandler::supportsOption(ImageOption option) const 86 | { 87 | return option == CompressionRatio 88 | || option == Size 89 | || option == ImageFormat; 90 | } 91 | 92 | QT_END_NAMESPACE 93 | -------------------------------------------------------------------------------- /src/plugins/imageformats/tga/qtgahandler.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only 3 | 4 | #ifndef QTGAHANDLER_H 5 | #define QTGAHANDLER_H 6 | 7 | #include 8 | 9 | QT_BEGIN_NAMESPACE 10 | 11 | class QTgaFile; 12 | 13 | class QTgaHandler : public QImageIOHandler 14 | { 15 | public: 16 | QTgaHandler(); 17 | ~QTgaHandler(); 18 | 19 | bool canRead() const override; 20 | bool read(QImage *image) override; 21 | 22 | static bool canRead(QIODevice *device); 23 | 24 | QVariant option(ImageOption option) const override; 25 | void setOption(ImageOption option, const QVariant &value) override; 26 | bool supportsOption(ImageOption option) const override; 27 | 28 | private: 29 | mutable QTgaFile *tga; 30 | }; 31 | 32 | QT_END_NAMESPACE 33 | 34 | #endif // QTGAHANDLER_H 35 | -------------------------------------------------------------------------------- /src/plugins/imageformats/tga/tga.json: -------------------------------------------------------------------------------- 1 | { 2 | "Keys": [ "tga" ], 3 | "MimeTypes": [ "image/x-tga" ] 4 | } 5 | -------------------------------------------------------------------------------- /src/plugins/imageformats/tiff/main.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only 3 | 4 | #include 5 | #include 6 | 7 | #ifndef QT_NO_IMAGEFORMATPLUGIN 8 | 9 | #include "qtiffhandler_p.h" 10 | 11 | QT_BEGIN_NAMESPACE 12 | 13 | class QTiffPlugin : public QImageIOPlugin 14 | { 15 | Q_OBJECT 16 | Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QImageIOHandlerFactoryInterface" FILE "tiff.json") 17 | 18 | public: 19 | Capabilities capabilities(QIODevice * device, const QByteArray & format) const override; 20 | QImageIOHandler * create(QIODevice * device, const QByteArray & format = QByteArray()) const override; 21 | }; 22 | 23 | QImageIOPlugin::Capabilities QTiffPlugin::capabilities(QIODevice *device, const QByteArray &format) const 24 | { 25 | if (format == "tiff" || format == "tif") 26 | return Capabilities(CanRead | CanWrite); 27 | Capabilities cap; 28 | if (!format.isEmpty()) 29 | return cap; 30 | if (!device->isOpen()) 31 | return cap; 32 | 33 | if (device->isReadable() && QTiffHandler::canRead(device)) 34 | cap |= CanRead; 35 | if (device->isWritable()) 36 | cap |= CanWrite; 37 | return cap; 38 | } 39 | 40 | QImageIOHandler* QTiffPlugin::create(QIODevice *device, const QByteArray &format) const 41 | { 42 | QImageIOHandler *tiffHandler = new QTiffHandler(); 43 | tiffHandler->setDevice(device); 44 | tiffHandler->setFormat(format); 45 | return tiffHandler; 46 | } 47 | 48 | QT_END_NAMESPACE 49 | 50 | #include "main.moc" 51 | 52 | #endif /* QT_NO_IMAGEFORMATPLUGIN */ 53 | -------------------------------------------------------------------------------- /src/plugins/imageformats/tiff/qtiffhandler_p.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only 3 | 4 | #ifndef QTIFFHANDLER_P_H 5 | #define QTIFFHANDLER_P_H 6 | 7 | #include 8 | #include 9 | 10 | QT_BEGIN_NAMESPACE 11 | 12 | class QTiffHandlerPrivate; 13 | class QTiffHandler : public QImageIOHandler 14 | { 15 | public: 16 | QTiffHandler(); 17 | 18 | bool canRead() const override; 19 | bool read(QImage *image) override; 20 | bool write(const QImage &image) override; 21 | 22 | static bool canRead(QIODevice *device); 23 | 24 | QVariant option(ImageOption option) const override; 25 | void setOption(ImageOption option, const QVariant &value) override; 26 | bool supportsOption(ImageOption option) const override; 27 | 28 | bool jumpToNextImage() override; 29 | bool jumpToImage(int imageNumber) override; 30 | int imageCount() const override; 31 | int currentImageNumber() const override; 32 | 33 | enum Compression { 34 | NoCompression = 0, 35 | LzwCompression = 1 36 | }; 37 | private: 38 | void convert32BitOrder(void *buffer, int width); 39 | void rgb48fixup(QImage *image, bool floatingPoint); 40 | void rgb96fixup(QImage *image); 41 | void rgbFixup(QImage *image); 42 | const QScopedPointer d; 43 | bool ensureHaveDirectoryCount() const; 44 | }; 45 | 46 | QT_END_NAMESPACE 47 | 48 | #endif // QTIFFHANDLER_P_H 49 | -------------------------------------------------------------------------------- /src/plugins/imageformats/tiff/tiff.json: -------------------------------------------------------------------------------- 1 | { 2 | "Keys": [ "tiff", "tif" ], 3 | "MimeTypes": [ "image/tiff", "image/tiff" ] 4 | } 5 | -------------------------------------------------------------------------------- /src/plugins/imageformats/wbmp/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2022 The Qt Company Ltd. 2 | # SPDX-License-Identifier: BSD-3-Clause 3 | 4 | ##################################################################### 5 | ## QWbmpPlugin Plugin: 6 | ##################################################################### 7 | 8 | qt_internal_add_plugin(QWbmpPlugin 9 | OUTPUT_NAME qwbmp 10 | PLUGIN_TYPE imageformats 11 | SOURCES 12 | main.cpp 13 | qwbmphandler.cpp qwbmphandler_p.h 14 | LIBRARIES 15 | Qt::Core 16 | Qt::Gui 17 | ) 18 | -------------------------------------------------------------------------------- /src/plugins/imageformats/wbmp/main.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only 3 | 4 | #include 5 | 6 | #ifndef QT_NO_IMAGEFORMATPLUGIN 7 | 8 | #ifdef QT_NO_IMAGEFORMAT_WBMP 9 | #undef QT_NO_IMAGEFORMAT_WBMP 10 | #endif 11 | 12 | #include "qwbmphandler_p.h" 13 | 14 | QT_BEGIN_NAMESPACE 15 | 16 | class QWbmpPlugin : public QImageIOPlugin 17 | { 18 | Q_OBJECT 19 | Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QImageIOHandlerFactoryInterface" FILE "wbmp.json") 20 | 21 | public: 22 | QImageIOPlugin::Capabilities capabilities(QIODevice *device, const QByteArray &format) const override; 23 | QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const override; 24 | }; 25 | 26 | QImageIOPlugin::Capabilities QWbmpPlugin::capabilities(QIODevice *device, const QByteArray &format) const 27 | { 28 | if (format == "wbmp") 29 | return Capabilities(CanRead | CanWrite); 30 | 31 | Capabilities cap; 32 | if (!format.isEmpty()) 33 | return cap; 34 | 35 | if (!device->isOpen()) 36 | return cap; 37 | 38 | if (device->isReadable() && QWbmpHandler::canRead(device)) 39 | cap |= CanRead; 40 | 41 | if (device->isWritable()) 42 | cap |= CanWrite; 43 | 44 | return cap; 45 | } 46 | 47 | QImageIOHandler * QWbmpPlugin::create(QIODevice *device, const QByteArray &format) const 48 | { 49 | QImageIOHandler *handler = new QWbmpHandler(device); 50 | 51 | handler->setFormat(format); 52 | return handler; 53 | } 54 | 55 | QT_END_NAMESPACE 56 | 57 | #include "main.moc" 58 | 59 | #endif /* QT_NO_IMAGEFORMATPLUGIN */ 60 | -------------------------------------------------------------------------------- /src/plugins/imageformats/wbmp/qwbmphandler_p.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only 3 | 4 | // 5 | // W A R N I N G 6 | // ------------- 7 | // 8 | // This file is not part of the Qt API. It exists purely as an 9 | // implementation detail. This header file may change from version to 10 | // version without notice, or even be removed. 11 | // 12 | // We mean it. 13 | // 14 | 15 | #ifndef QWBMPHANDLER_P_H 16 | #define QWBMPHANDLER_P_H 17 | 18 | #include 19 | 20 | QT_BEGIN_NAMESPACE 21 | 22 | class WBMPReader; 23 | 24 | class QWbmpHandler : public QImageIOHandler 25 | { 26 | public: 27 | QWbmpHandler(QIODevice *device); 28 | ~QWbmpHandler(); 29 | 30 | bool canRead() const override; 31 | bool read(QImage *image) override; 32 | bool write(const QImage &image) override; 33 | 34 | QVariant option(ImageOption option) const override; 35 | bool supportsOption(ImageOption option) const override; 36 | 37 | static bool canRead(QIODevice *device); 38 | 39 | private: 40 | WBMPReader *m_reader; 41 | }; 42 | 43 | QT_END_NAMESPACE 44 | 45 | #endif /* QWBMPHANDLER_P_H */ 46 | -------------------------------------------------------------------------------- /src/plugins/imageformats/wbmp/wbmp.json: -------------------------------------------------------------------------------- 1 | { 2 | "Keys": [ "wbmp" ], 3 | "MimeTypes": [ "image/vnd.wap.wbmp" ] 4 | } 5 | -------------------------------------------------------------------------------- /src/plugins/imageformats/webp/main.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only 3 | 4 | #include 5 | #include 6 | 7 | #ifndef QT_NO_IMAGEFORMATPLUGIN 8 | 9 | #include "qwebphandler_p.h" 10 | 11 | #include 12 | #include 13 | 14 | QT_BEGIN_NAMESPACE 15 | 16 | class QWebpPlugin : public QImageIOPlugin 17 | { 18 | Q_OBJECT 19 | Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QImageIOHandlerFactoryInterface" FILE "webp.json") 20 | 21 | public: 22 | Capabilities capabilities(QIODevice *device, const QByteArray &format) const override; 23 | QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const override; 24 | }; 25 | 26 | QWebpPlugin::Capabilities QWebpPlugin::capabilities(QIODevice *device, const QByteArray &format) const 27 | { 28 | if (format == "webp") 29 | return Capabilities(CanRead | CanWrite); 30 | 31 | Capabilities cap; 32 | if (!format.isEmpty()) 33 | return cap; 34 | if (!device->isOpen()) 35 | return cap; 36 | 37 | if (device->isReadable() && QWebpHandler::canRead(device)) 38 | cap |= CanRead; 39 | if (device->isWritable()) 40 | cap |= CanWrite; 41 | 42 | return cap; 43 | } 44 | 45 | QImageIOHandler *QWebpPlugin::create(QIODevice *device, const QByteArray &format) const 46 | { 47 | QImageIOHandler *handler = new QWebpHandler; 48 | handler->setDevice(device); 49 | handler->setFormat(format); 50 | return handler; 51 | } 52 | 53 | QT_END_NAMESPACE 54 | 55 | #include "main.moc" 56 | 57 | #endif // !QT_NO_IMAGEFORMATPLUGIN 58 | -------------------------------------------------------------------------------- /src/plugins/imageformats/webp/qwebphandler_p.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only 3 | 4 | #ifndef QWEBPHANDLER_P_H 5 | #define QWEBPHANDLER_P_H 6 | 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | #include "webp/decode.h" 15 | #include "webp/demux.h" 16 | 17 | class QWebpHandler : public QImageIOHandler 18 | { 19 | public: 20 | QWebpHandler(); 21 | ~QWebpHandler(); 22 | 23 | public: 24 | bool canRead() const override; 25 | bool read(QImage *image) override; 26 | 27 | static bool canRead(QIODevice *device); 28 | 29 | bool write(const QImage &image) override; 30 | QVariant option(ImageOption option) const override; 31 | void setOption(ImageOption option, const QVariant &value) override; 32 | bool supportsOption(ImageOption option) const override; 33 | 34 | int imageCount() const override; 35 | int currentImageNumber() const override; 36 | QRect currentImageRect() const override; 37 | int loopCount() const override; 38 | int nextImageDelay() const override; 39 | 40 | private: 41 | bool ensureScanned() const; 42 | bool ensureDemuxer(); 43 | 44 | private: 45 | enum ScanState { 46 | ScanError = -1, 47 | ScanNotScanned = 0, 48 | ScanSuccess = 1, 49 | }; 50 | 51 | int m_quality; 52 | mutable ScanState m_scanState; 53 | WebPBitstreamFeatures m_features; 54 | uint32_t m_formatFlags; 55 | int m_loop; 56 | int m_frameCount; 57 | QColor m_bgColor; 58 | QByteArray m_rawData; 59 | WebPData m_webpData; 60 | WebPDemuxer *m_demuxer; 61 | WebPIterator m_iter; 62 | QColorSpace m_colorSpace; 63 | QImage *m_composited; // For animation frames composition 64 | }; 65 | 66 | #endif // WEBPHANDLER_H 67 | -------------------------------------------------------------------------------- /src/plugins/imageformats/webp/webp.json: -------------------------------------------------------------------------------- 1 | { 2 | "Keys": [ "webp" ], 3 | "MimeTypes": [ "image/webp" ] 4 | } 5 | -------------------------------------------------------------------------------- /tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2022 The Qt Company Ltd. 2 | # SPDX-License-Identifier: BSD-3-Clause 3 | 4 | if(QT_BUILD_STANDALONE_TESTS) 5 | # Add qt_find_package calls for extra dependencies that need to be found when building 6 | # the standalone tests here. 7 | endif() 8 | qt_build_tests() 9 | -------------------------------------------------------------------------------- /tests/auto/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2022 The Qt Company Ltd. 2 | # SPDX-License-Identifier: BSD-3-Clause 3 | 4 | # For now, don't built auto tests when QT_BUILD_MINIMAL_STATIC_TEST 5 | # is specified and the build is targeting iOS. QT_BUILD_MINIMAL_STATIC_TEST is used in our CI. 6 | # Regular non-cmake build tests shouldn't be built because the CI will try to run them and fail 7 | # due to missing simulator support. 8 | if(IOS AND QT_BUILD_MINIMAL_STATIC_TESTS) 9 | return() 10 | endif() 11 | 12 | add_subdirectory(tga) 13 | add_subdirectory(wbmp) 14 | add_subdirectory(dds) 15 | add_subdirectory(icns) 16 | add_subdirectory(jp2) 17 | add_subdirectory(webp) 18 | add_subdirectory(heif) 19 | add_subdirectory(mng) 20 | add_subdirectory(tiff) 21 | -------------------------------------------------------------------------------- /tests/auto/heif/BLACKLIST: -------------------------------------------------------------------------------- 1 | [writeImage] 2 | macos-12 arm # HEIC codec doesn't seem to work in Tart VMs 3 | -------------------------------------------------------------------------------- /tests/auto/heif/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2022 The Qt Company Ltd. 2 | # SPDX-License-Identifier: BSD-3-Clause 3 | 4 | ##################################################################### 5 | ## tst_qheif Test: 6 | ##################################################################### 7 | 8 | qt_internal_add_test(tst_qheif 9 | SOURCES 10 | tst_qheif.cpp 11 | LIBRARIES 12 | Qt::Gui 13 | ) 14 | 15 | # Resources: 16 | set(heif_resource_files 17 | "../../shared/images/heif/col320x480.heic" 18 | "../../shared/images/heif/newlogoCCW.heic" 19 | ) 20 | 21 | qt_internal_add_resource(tst_qheif "heif" 22 | PREFIX 23 | "/" 24 | BASE 25 | "../../shared/images" 26 | FILES 27 | ${heif_resource_files} 28 | ) 29 | -------------------------------------------------------------------------------- /tests/auto/icns/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2022 The Qt Company Ltd. 2 | # SPDX-License-Identifier: BSD-3-Clause 3 | 4 | 5 | ##################################################################### 6 | ## tst_qicns Test: 7 | ##################################################################### 8 | 9 | qt_internal_add_test(tst_qicns 10 | SOURCES 11 | tst_qicns.cpp 12 | LIBRARIES 13 | Qt::Gui 14 | ) 15 | 16 | # Resources: 17 | set(icns_resource_files 18 | "../../shared/images/icns/test-32bit.icns" 19 | "../../shared/images/icns/test-jp2.icns" 20 | "../../shared/images/icns/test-legacy.icns" 21 | "../../shared/images/icns/test-png.icns" 22 | "../../shared/images/icns/test-variants.icns" 23 | "../../shared/images/icns/test-write-1024.png" 24 | "../../shared/images/icns/test-write-128.png" 25 | "../../shared/images/icns/test-write-16.png" 26 | "../../shared/images/icns/test-write-256.png" 27 | "../../shared/images/icns/test-write-32.png" 28 | "../../shared/images/icns/test-write-512.png" 29 | "../../shared/images/icns/test-write-64.png" 30 | ) 31 | 32 | qt_internal_add_resource(tst_qicns "icns" 33 | PREFIX 34 | "/" 35 | BASE 36 | "../../shared/images" 37 | FILES 38 | ${icns_resource_files} 39 | ) 40 | -------------------------------------------------------------------------------- /tests/auto/jp2/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2022 The Qt Company Ltd. 2 | # SPDX-License-Identifier: BSD-3-Clause 3 | 4 | ##################################################################### 5 | ## tst_qjp2 Test: 6 | ##################################################################### 7 | 8 | qt_internal_add_test(tst_qjp2 9 | SOURCES 10 | tst_qjp2.cpp 11 | LIBRARIES 12 | Qt::Gui 13 | ) 14 | 15 | # Resources: 16 | set(jp2_resource_files 17 | "../../shared/images/jp2/logo.bmp" 18 | "../../shared/images/jp2/logo.jp2" 19 | ) 20 | 21 | qt_internal_add_resource(tst_qjp2 "jp2" 22 | PREFIX 23 | "/" 24 | BASE 25 | "../../shared/images" 26 | FILES 27 | ${jp2_resource_files} 28 | ) 29 | -------------------------------------------------------------------------------- /tests/auto/jp2/tst_qjp2.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 The Qt Company Ltd. 2 | // Copyright (C) 2016 Petroules Corporation. 3 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only 4 | 5 | #include 6 | #include 7 | 8 | class tst_qjp2: public QObject 9 | { 10 | Q_OBJECT 11 | 12 | private slots: 13 | void initTestCase(); 14 | void readImage_data(); 15 | void readImage(); 16 | }; 17 | 18 | void tst_qjp2::initTestCase() 19 | { 20 | if (!QImageReader::supportedImageFormats().contains("jp2")) 21 | QSKIP("The image format handler is not installed."); 22 | } 23 | 24 | void tst_qjp2::readImage_data() 25 | { 26 | QTest::addColumn("fileName"); 27 | QTest::addColumn("referenceFileName"); 28 | QTest::addColumn("size"); 29 | 30 | QTest::newRow("logo") << QString("logo.jp2") << QString("logo.bmp") << QSize(498, 80); 31 | } 32 | 33 | void tst_qjp2::readImage() 34 | { 35 | QFETCH(QString, fileName); 36 | QFETCH(QString, referenceFileName); 37 | QFETCH(QSize, size); 38 | 39 | QString path = QString(":/jp2/") + fileName; 40 | QImageReader reader(path); 41 | QVERIFY(reader.canRead()); 42 | QImage image = reader.read(); 43 | QVERIFY(!image.isNull()); 44 | QCOMPARE(image.size(), size); 45 | 46 | path = QString(":jp2/") + referenceFileName; 47 | QImageReader referenceReader(path); 48 | QVERIFY(referenceReader.canRead()); 49 | QImage referenceImage = referenceReader.read(); 50 | QVERIFY(!referenceImage.isNull()); 51 | QCOMPARE(referenceImage.size(), size); 52 | } 53 | 54 | QTEST_MAIN(tst_qjp2) 55 | #include "tst_qjp2.moc" 56 | -------------------------------------------------------------------------------- /tests/auto/mng/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2022 The Qt Company Ltd. 2 | # SPDX-License-Identifier: BSD-3-Clause 3 | 4 | ##################################################################### 5 | ## tst_qmng Test: 6 | ##################################################################### 7 | 8 | qt_internal_add_test(tst_qmng 9 | SOURCES 10 | tst_qmng.cpp 11 | LIBRARIES 12 | Qt::Gui 13 | ) 14 | 15 | # Resources: 16 | set(mng_resource_files 17 | "../../shared/images/mng/animation.mng" 18 | "../../shared/images/mng/ball.mng" 19 | "../../shared/images/mng/corrupt.mng" 20 | "../../shared/images/mng/dutch.mng" 21 | "../../shared/images/mng/fire.mng" 22 | ) 23 | 24 | qt_internal_add_resource(tst_qmng "mng" 25 | PREFIX 26 | "/" 27 | BASE 28 | "../../shared/images" 29 | FILES 30 | ${mng_resource_files} 31 | ) 32 | -------------------------------------------------------------------------------- /tests/auto/mng/tst_qmng.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only 3 | 4 | #include 5 | #include 6 | 7 | class tst_qmng: public QObject 8 | { 9 | Q_OBJECT 10 | 11 | private slots: 12 | void initTestCase(); 13 | void readImage_data(); 14 | void readImage(); 15 | void readCorruptImage_data(); 16 | void readCorruptImage(); 17 | }; 18 | 19 | void tst_qmng::initTestCase() 20 | { 21 | if (!QImageReader::supportedImageFormats().contains("mng")) 22 | QSKIP("The image format handler is not installed."); 23 | } 24 | 25 | void tst_qmng::readImage_data() 26 | { 27 | QTest::addColumn("fileName"); 28 | QTest::addColumn("size"); 29 | 30 | QTest::newRow("animation") << QString("animation.mng") << QSize(100, 100); 31 | QTest::newRow("ball") << QString("ball.mng") << QSize(32, 32); 32 | QTest::newRow("dutch") << QString("dutch.mng") << QSize(352, 264); 33 | QTest::newRow("fire") << QString("fire.mng") << QSize(30, 60); 34 | } 35 | 36 | void tst_qmng::readImage() 37 | { 38 | QFETCH(QString, fileName); 39 | QFETCH(QSize, size); 40 | 41 | QString path = QString(":/mng/") + fileName; 42 | QImageReader reader(path); 43 | QVERIFY(reader.canRead()); 44 | QImage image = reader.read(); 45 | QVERIFY(!image.isNull()); 46 | QCOMPARE(image.size(), size); 47 | } 48 | 49 | void tst_qmng::readCorruptImage_data() 50 | { 51 | QTest::addColumn("fileName"); 52 | QTest::addColumn("message"); 53 | 54 | QTest::newRow("corrupt") 55 | << QString("corrupt.mng") 56 | << QString("MNG error 901: Application signalled I/O error; chunk IHDR; subcode 0:0"); 57 | } 58 | 59 | void tst_qmng::readCorruptImage() 60 | { 61 | QFETCH(QString, fileName); 62 | QFETCH(QString, message); 63 | 64 | QString path = QString(":/mng/") + fileName; 65 | QImageReader reader(path); 66 | if (!message.isEmpty()) 67 | QTest::ignoreMessage(QtWarningMsg, message.toLatin1()); 68 | QVERIFY(reader.canRead()); 69 | QImage image = reader.read(); 70 | QVERIFY(image.isNull()); 71 | } 72 | 73 | QTEST_MAIN(tst_qmng) 74 | #include "tst_qmng.moc" 75 | -------------------------------------------------------------------------------- /tests/auto/tga/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2022 The Qt Company Ltd. 2 | # SPDX-License-Identifier: BSD-3-Clause 3 | 4 | ##################################################################### 5 | ## tst_qtga Test: 6 | ##################################################################### 7 | 8 | qt_internal_add_test(tst_qtga 9 | SOURCES 10 | tst_qtga.cpp 11 | LIBRARIES 12 | Qt::Gui 13 | ) 14 | 15 | # Resources: 16 | set(tga_resource_files 17 | "../../shared/images/tga/test-flag.tga" 18 | ) 19 | 20 | qt_internal_add_resource(tst_qtga "tga" 21 | PREFIX 22 | "/" 23 | BASE 24 | "../../shared/images" 25 | FILES 26 | ${tga_resource_files} 27 | ) 28 | -------------------------------------------------------------------------------- /tests/auto/tga/tst_qtga.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only 3 | 4 | #include 5 | #include 6 | 7 | class tst_qtga: public QObject 8 | { 9 | Q_OBJECT 10 | 11 | private slots: 12 | void initTestCase(); 13 | void readImage_data(); 14 | void readImage(); 15 | }; 16 | 17 | void tst_qtga::initTestCase() 18 | { 19 | if (!QImageReader::supportedImageFormats().contains("tga")) 20 | QSKIP("The image format handler is not installed."); 21 | } 22 | 23 | void tst_qtga::readImage_data() 24 | { 25 | QTest::addColumn("fileName"); 26 | QTest::addColumn("size"); 27 | 28 | QTest::newRow("test-flag") << QString("test-flag.tga") << QSize(400, 400); 29 | } 30 | 31 | void tst_qtga::readImage() 32 | { 33 | QFETCH(QString, fileName); 34 | QFETCH(QSize, size); 35 | 36 | QString path = QString(":/tga/") + fileName; 37 | QImageReader reader(path); 38 | QVERIFY(reader.canRead()); 39 | QImage image = reader.read(); 40 | QVERIFY(!image.isNull()); 41 | QCOMPARE(image.size(), size); 42 | } 43 | 44 | QTEST_MAIN(tst_qtga) 45 | #include "tst_qtga.moc" 46 | -------------------------------------------------------------------------------- /tests/auto/wbmp/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2022 The Qt Company Ltd. 2 | # SPDX-License-Identifier: BSD-3-Clause 3 | 4 | ##################################################################### 5 | ## tst_qwbmp Test: 6 | ##################################################################### 7 | 8 | qt_internal_add_test(tst_qwbmp 9 | SOURCES 10 | tst_qwbmp.cpp 11 | LIBRARIES 12 | Qt::Gui 13 | ) 14 | 15 | # Resources: 16 | set(wbmp_resource_files 17 | "../../shared/images/wbmp/qt-logo-big.wbmp" 18 | "../../shared/images/wbmp/qt-logo-small.wbmp" 19 | ) 20 | 21 | qt_internal_add_resource(tst_qwbmp "wbmp" 22 | PREFIX 23 | "/" 24 | BASE 25 | "../../shared/images" 26 | FILES 27 | ${wbmp_resource_files} 28 | ) 29 | -------------------------------------------------------------------------------- /tests/auto/wbmp/tst_qwbmp.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only 3 | 4 | #include 5 | #include 6 | 7 | class tst_qwbmp: public QObject 8 | { 9 | Q_OBJECT 10 | 11 | private slots: 12 | void initTestCase(); 13 | void readImage_data(); 14 | void readImage(); 15 | }; 16 | 17 | void tst_qwbmp::initTestCase() 18 | { 19 | if (!QImageReader::supportedImageFormats().contains("wbmp")) 20 | QSKIP("The image format handler is not installed."); 21 | } 22 | 23 | void tst_qwbmp::readImage_data() 24 | { 25 | QTest::addColumn("fileName"); 26 | QTest::addColumn("size"); 27 | 28 | QTest::newRow("qt-logo-small") << QString("qt-logo-small.wbmp") << QSize(123, 103); 29 | QTest::newRow("qt-logo-big") << QString("qt-logo-big.wbmp") << QSize(250, 250); 30 | } 31 | 32 | void tst_qwbmp::readImage() 33 | { 34 | QFETCH(QString, fileName); 35 | QFETCH(QSize, size); 36 | 37 | QString path = QString(":/wbmp/") + fileName; 38 | QImageReader reader(path); 39 | QVERIFY(reader.canRead()); 40 | QImage image = reader.read(); 41 | QVERIFY(!image.isNull()); 42 | QCOMPARE(image.size(), size); 43 | } 44 | 45 | QTEST_MAIN(tst_qwbmp) 46 | 47 | #include "tst_qwbmp.moc" 48 | -------------------------------------------------------------------------------- /tests/auto/webp/BLACKLIST: -------------------------------------------------------------------------------- 1 | # QTBUG-130617 2 | [writeImage:kollada_noalpha-100] 3 | vxworks 4 | -------------------------------------------------------------------------------- /tests/auto/webp/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2022 The Qt Company Ltd. 2 | # SPDX-License-Identifier: BSD-3-Clause 3 | 4 | ##################################################################### 5 | ## tst_qwebp Test: 6 | ##################################################################### 7 | 8 | qt_internal_add_test(tst_qwebp 9 | SOURCES 10 | tst_qwebp.cpp 11 | LIBRARIES 12 | Qt::Gui 13 | ) 14 | 15 | # Resources: 16 | set(webp_resource_files 17 | "images/kollada.png" 18 | "images/kollada.webp" 19 | "images/kollada_animation.webp" 20 | "images/kollada_lossless.webp" 21 | "images/kollada_noalpha.webp" 22 | ) 23 | 24 | qt_internal_add_resource(tst_qwebp "webp" 25 | PREFIX 26 | "/" 27 | FILES 28 | ${webp_resource_files} 29 | ) 30 | 31 | -------------------------------------------------------------------------------- /tests/auto/webp/images/kollada.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/auto/webp/images/kollada.png -------------------------------------------------------------------------------- /tests/auto/webp/images/kollada.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/auto/webp/images/kollada.webp -------------------------------------------------------------------------------- /tests/auto/webp/images/kollada_animation.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/auto/webp/images/kollada_animation.webp -------------------------------------------------------------------------------- /tests/auto/webp/images/kollada_lossless.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/auto/webp/images/kollada_lossless.webp -------------------------------------------------------------------------------- /tests/auto/webp/images/kollada_noalpha.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/auto/webp/images/kollada_noalpha.webp -------------------------------------------------------------------------------- /tests/benchmarks/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2022 The Qt Company Ltd. 2 | # SPDX-License-Identifier: BSD-3-Clause 3 | 4 | 5 | if(QT_FEATURE_system_zlib) 6 | add_subdirectory(mng) 7 | add_subdirectory(tiff) 8 | endif() 9 | -------------------------------------------------------------------------------- /tests/benchmarks/benchmarks.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = subdirs 2 | SUBDIRS = 3 | qtConfig(system-zlib): SUBDIRS += mng tiff 4 | -------------------------------------------------------------------------------- /tests/benchmarks/mng/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2022 The Qt Company Ltd. 2 | # SPDX-License-Identifier: BSD-3-Clause 3 | 4 | ##################################################################### 5 | ## tst_bench_qmng Binary: 6 | ##################################################################### 7 | 8 | qt_internal_add_benchmark(tst_bench_qmng 9 | SOURCES 10 | tst_qmng.cpp 11 | LIBRARIES 12 | Qt::Gui 13 | Qt::Test 14 | ) 15 | 16 | # Resources: 17 | set(mng_resource_files 18 | "../../shared/images/mng/animation.mng" 19 | "../../shared/images/mng/ball.mng" 20 | "../../shared/images/mng/corrupt.mng" 21 | "../../shared/images/mng/dutch.mng" 22 | "../../shared/images/mng/fire.mng" 23 | ) 24 | 25 | qt_internal_add_resource(tst_bench_qmng "mng" 26 | PREFIX 27 | "/" 28 | BASE 29 | "../../shared/images" 30 | FILES 31 | ${mng_resource_files} 32 | ) 33 | -------------------------------------------------------------------------------- /tests/benchmarks/mng/mng.pro: -------------------------------------------------------------------------------- 1 | TARGET = tst_bench_qmng 2 | 3 | QT = core gui testlib 4 | CONFIG -= app_bundle 5 | 6 | SOURCES += tst_qmng.cpp 7 | RESOURCES += $$PWD/../../shared/images/mng.qrc 8 | -------------------------------------------------------------------------------- /tests/benchmarks/mng/tst_qmng.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 The Qt Company Ltd. 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only 3 | 4 | #include 5 | #include 6 | 7 | class tst_qmng: public QObject 8 | { 9 | Q_OBJECT 10 | 11 | private slots: 12 | void readImage_data(); 13 | void readImage(); 14 | void readCorruptImage_data(); 15 | void readCorruptImage(); 16 | }; 17 | 18 | void tst_qmng::readImage_data() 19 | { 20 | QTest::addColumn("fileName"); 21 | QTest::addColumn("size"); 22 | 23 | QTest::newRow("animation") << QString("animation.mng") << QSize(100, 100); 24 | QTest::newRow("ball") << QString("ball.mng") << QSize(32, 32); 25 | QTest::newRow("dutch") << QString("dutch.mng") << QSize(352, 264); 26 | QTest::newRow("fire") << QString("fire.mng") << QSize(30, 60); 27 | } 28 | 29 | void tst_qmng::readImage() 30 | { 31 | QFETCH(QString, fileName); 32 | QFETCH(QSize, size); 33 | 34 | QString path = QString(":/mng/") + fileName; 35 | QBENCHMARK { 36 | QImageReader reader(path); 37 | QVERIFY(reader.canRead()); 38 | QImage image = reader.read(); 39 | QVERIFY(!image.isNull()); 40 | QCOMPARE(image.size(), size); 41 | } 42 | } 43 | 44 | void tst_qmng::readCorruptImage_data() 45 | { 46 | QTest::addColumn("fileName"); 47 | QTest::addColumn("message"); 48 | 49 | QTest::newRow("corrupt") 50 | << QString("corrupt.mng") 51 | << QString("MNG error 901: Application signalled I/O error; chunk IHDR; subcode 0:0"); 52 | } 53 | 54 | void tst_qmng::readCorruptImage() 55 | { 56 | QFETCH(QString, fileName); 57 | QFETCH(QString, message); 58 | 59 | QString path = QString(":/mng/") + fileName; 60 | QBENCHMARK { 61 | QImageReader reader(path); 62 | if (!message.isEmpty()) 63 | QTest::ignoreMessage(QtWarningMsg, message.toLatin1()); 64 | QVERIFY(reader.canRead()); 65 | QImage image = reader.read(); 66 | QVERIFY(image.isNull()); 67 | } 68 | } 69 | 70 | QTEST_MAIN(tst_qmng) 71 | #include "tst_qmng.moc" 72 | -------------------------------------------------------------------------------- /tests/benchmarks/tiff/tiff.pro: -------------------------------------------------------------------------------- 1 | TARGET = tst_bench_qtiff 2 | 3 | QT = core gui testlib 4 | CONFIG -= app_bundle 5 | 6 | SOURCES += tst_qtiff.cpp 7 | RESOURCES += ../../shared/images/tiff.qrc 8 | -------------------------------------------------------------------------------- /tests/shared/images/dds/A16B16G16R16.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/A16B16G16R16.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/A16B16G16R16F.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/A16B16G16R16F.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/A1R5G5B5.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/A1R5G5B5.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/A2B10G10R10.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/A2B10G10R10.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/A2R10G10B10.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/A2R10G10B10.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/A2W10V10U10.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/A2W10V10U10.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/A32B32G32R32F.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/A32B32G32R32F.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/A4L4.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/A4L4.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/A4R4G4B4.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/A4R4G4B4.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/A8.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/A8.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/A8B8G8R8.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/A8B8G8R8.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/A8L8.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/A8L8.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/A8R3G3B2.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/A8R3G3B2.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/A8R8G8B8.2.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/A8R8G8B8.2.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/A8R8G8B8.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/A8R8G8B8.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/ATI2.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/ATI2.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/CxV8U8.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/CxV8U8.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/DXT1.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/DXT1.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/DXT2.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/DXT2.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/DXT3.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/DXT3.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/DXT4.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/DXT4.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/DXT5.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/DXT5.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/G16R16.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/G16R16.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/G16R16F.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/G16R16F.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/G32R32F.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/G32R32F.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/G8R8_G8B8.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/G8R8_G8B8.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/L16.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/L16.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/L6V5U5.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/L6V5U5.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/L8.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/L8.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/P4.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/P4.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/P8.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/P8.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/Q16W16V16U16.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/Q16W16V16U16.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/Q8W8V8U8.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/Q8W8V8U8.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/R16F.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/R16F.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/R32F.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/R32F.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/R3G3B2.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/R3G3B2.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/R5G6B5.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/R5G6B5.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/R8G8B8.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/R8G8B8.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/R8G8_B8G8.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/R8G8_B8G8.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/RXGB.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/RXGB.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/UYVY.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/UYVY.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/V16U16.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/V16U16.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/V8U8.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/V8U8.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/X1R5G5B5.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/X1R5G5B5.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/X4R4G4B4.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/X4R4G4B4.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/X8B8G8R8.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/X8B8G8R8.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/X8L8V8U8.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/X8L8V8U8.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/X8R8G8B8.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/X8R8G8B8.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/YUY2.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/YUY2.dds -------------------------------------------------------------------------------- /tests/shared/images/dds/mipmaps.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/dds/mipmaps.dds -------------------------------------------------------------------------------- /tests/shared/images/heif/col320x480.heic: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/heif/col320x480.heic -------------------------------------------------------------------------------- /tests/shared/images/heif/newlogoCCW.heic: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/heif/newlogoCCW.heic -------------------------------------------------------------------------------- /tests/shared/images/icns/test-32bit.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/icns/test-32bit.icns -------------------------------------------------------------------------------- /tests/shared/images/icns/test-jp2.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/icns/test-jp2.icns -------------------------------------------------------------------------------- /tests/shared/images/icns/test-legacy.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/icns/test-legacy.icns -------------------------------------------------------------------------------- /tests/shared/images/icns/test-png.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/icns/test-png.icns -------------------------------------------------------------------------------- /tests/shared/images/icns/test-variants.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/icns/test-variants.icns -------------------------------------------------------------------------------- /tests/shared/images/icns/test-write-1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/icns/test-write-1024.png -------------------------------------------------------------------------------- /tests/shared/images/icns/test-write-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/icns/test-write-128.png -------------------------------------------------------------------------------- /tests/shared/images/icns/test-write-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/icns/test-write-16.png -------------------------------------------------------------------------------- /tests/shared/images/icns/test-write-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/icns/test-write-256.png -------------------------------------------------------------------------------- /tests/shared/images/icns/test-write-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/icns/test-write-32.png -------------------------------------------------------------------------------- /tests/shared/images/icns/test-write-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/icns/test-write-512.png -------------------------------------------------------------------------------- /tests/shared/images/icns/test-write-64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/icns/test-write-64.png -------------------------------------------------------------------------------- /tests/shared/images/jp2/logo.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/jp2/logo.bmp -------------------------------------------------------------------------------- /tests/shared/images/jp2/logo.jp2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/jp2/logo.jp2 -------------------------------------------------------------------------------- /tests/shared/images/mng.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | mng/animation.mng 4 | mng/ball.mng 5 | mng/corrupt.mng 6 | mng/fire.mng 7 | mng/dutch.mng 8 | 9 | 10 | -------------------------------------------------------------------------------- /tests/shared/images/mng/animation.mng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/mng/animation.mng -------------------------------------------------------------------------------- /tests/shared/images/mng/ball.mng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/mng/ball.mng -------------------------------------------------------------------------------- /tests/shared/images/mng/corrupt.mng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/mng/corrupt.mng -------------------------------------------------------------------------------- /tests/shared/images/mng/dutch.mng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/mng/dutch.mng -------------------------------------------------------------------------------- /tests/shared/images/mng/fire.mng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/mng/fire.mng -------------------------------------------------------------------------------- /tests/shared/images/tga/test-flag.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tga/test-flag.tga -------------------------------------------------------------------------------- /tests/shared/images/tiff/16bpc.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/16bpc.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/big_16bpc.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/big_16bpc.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/big_grayscale.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/big_grayscale.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/big_rgb.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/big_rgb.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/big_rgb_bigendian.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/big_rgb_bigendian.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/colorful.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/colorful.bmp -------------------------------------------------------------------------------- /tests/shared/images/tiff/corrupt-data.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/corrupt-data.tif -------------------------------------------------------------------------------- /tests/shared/images/tiff/gray16.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/gray16.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/grayscale-ref.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/grayscale-ref.tif -------------------------------------------------------------------------------- /tests/shared/images/tiff/grayscale.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/grayscale.tif -------------------------------------------------------------------------------- /tests/shared/images/tiff/image.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/image.tif -------------------------------------------------------------------------------- /tests/shared/images/tiff/image_100dpi.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/image_100dpi.tif -------------------------------------------------------------------------------- /tests/shared/images/tiff/indexed_orientation_1.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/indexed_orientation_1.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/indexed_orientation_2.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/indexed_orientation_2.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/indexed_orientation_3.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/indexed_orientation_3.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/indexed_orientation_4.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/indexed_orientation_4.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/indexed_orientation_5.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/indexed_orientation_5.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/indexed_orientation_6.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/indexed_orientation_6.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/indexed_orientation_7.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/indexed_orientation_7.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/indexed_orientation_8.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/indexed_orientation_8.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/mono_orientation_1.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/mono_orientation_1.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/mono_orientation_2.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/mono_orientation_2.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/mono_orientation_3.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/mono_orientation_3.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/mono_orientation_4.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/mono_orientation_4.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/mono_orientation_5.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/mono_orientation_5.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/mono_orientation_6.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/mono_orientation_6.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/mono_orientation_7.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/mono_orientation_7.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/mono_orientation_8.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/mono_orientation_8.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/multipage.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/multipage.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/oddsize_grayscale.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/oddsize_grayscale.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/oddsize_mono.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/oddsize_mono.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/original_grayscale.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/original_grayscale.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/original_indexed.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/original_indexed.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/original_mono.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/original_mono.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/original_rgb.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/original_rgb.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/rgb_orientation_1.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/rgb_orientation_1.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/rgb_orientation_2.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/rgb_orientation_2.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/rgb_orientation_3.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/rgb_orientation_3.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/rgb_orientation_4.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/rgb_orientation_4.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/rgb_orientation_5.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/rgb_orientation_5.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/rgb_orientation_6.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/rgb_orientation_6.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/rgb_orientation_7.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/rgb_orientation_7.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/rgb_orientation_8.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/rgb_orientation_8.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/rgba_adobedeflate_littleendian.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/rgba_adobedeflate_littleendian.tif -------------------------------------------------------------------------------- /tests/shared/images/tiff/rgba_lzw_littleendian.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/rgba_lzw_littleendian.tif -------------------------------------------------------------------------------- /tests/shared/images/tiff/rgba_nocompression_bigendian.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/rgba_nocompression_bigendian.tif -------------------------------------------------------------------------------- /tests/shared/images/tiff/rgba_nocompression_littleendian.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/rgba_nocompression_littleendian.tif -------------------------------------------------------------------------------- /tests/shared/images/tiff/rgba_packbits_littleendian.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/rgba_packbits_littleendian.tif -------------------------------------------------------------------------------- /tests/shared/images/tiff/rgba_zipdeflate_littleendian.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/rgba_zipdeflate_littleendian.tif -------------------------------------------------------------------------------- /tests/shared/images/tiff/teapot.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/teapot.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/teapot_cmyk.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/teapot_cmyk.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/tiled_grayscale.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/tiled_grayscale.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/tiled_indexed.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/tiled_indexed.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/tiled_mono.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/tiled_mono.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/tiled_oddsize_grayscale.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/tiled_oddsize_grayscale.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/tiled_oddsize_mono.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/tiled_oddsize_mono.tiff -------------------------------------------------------------------------------- /tests/shared/images/tiff/tiled_rgb.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/tiff/tiled_rgb.tiff -------------------------------------------------------------------------------- /tests/shared/images/wbmp/qt-logo-big.wbmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/wbmp/qt-logo-big.wbmp -------------------------------------------------------------------------------- /tests/shared/images/wbmp/qt-logo-small.wbmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qt/qtimageformats/232242d6657ea77a72a76613e353bd8bb2bbf2b6/tests/shared/images/wbmp/qt-logo-small.wbmp --------------------------------------------------------------------------------