diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b7bd012..16c1535 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,13 +14,27 @@ permissions: write-all jobs: build: - name: "Build" - runs-on: ubuntu-22.04 + strategy: + matrix: + os: + - ubuntu-22.04 + - ubuntu-24.04 + + include: + - os: ubuntu-22.04 + ubuntu: jammy + - os: ubuntu-24.04 + ubuntu: noble + + name: ${{ matrix.os }} + + runs-on: ${{ matrix.os }} + steps: - - uses: actions/checkout@v4.1.5 + - uses: actions/checkout@v4.1.6 - name: Build packages - run: DOCKER_BUILDKIT=1 docker build --tag imagemagick-deb --output binaries . + run: DOCKER_BUILDKIT=1 docker build --build-arg UBUNTU_VERSION=${{ matrix.ubuntu }} --output binaries . - name: List packages run: ls -lah binaries @@ -38,30 +52,37 @@ jobs: - name: magick -list format run: magick -list format + - name: Attest build provenance + uses: actions/attest-build-provenance@v1.1.2 + if: contains(github.ref, 'tags') + with: + subject-path: 'binaries/*' + - name: Archive binary artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v4.3.3 with: - name: binaries + name: binaries-${{ matrix.ubuntu }} path: binaries - name: Upload binaries to GitHub Release if: contains(github.ref, 'tags') - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - set -e - wget -c https://github.com/probonopd/uploadtool/raw/master/upload.sh - bash ./upload.sh binaries/* + uses: svenstaro/upload-release-action@2.9.0 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: binaries/* + tag: ${{ github.ref }} + overwrite: true + file_glob: true - - uses: actions/checkout@v4.1.5 - if: github.event_name == 'pull_request' + - uses: actions/checkout@v4.1.6 + if: github.event_name == 'pull_request' && matrix.ubuntu == 'noble' with: ref: ${{ github.event.pull_request.head.ref }} persist-credentials: false fetch-depth: 0 - name: Update README - if: github.event_name == 'pull_request' + if: github.event_name == 'pull_request' && matrix.ubuntu == 'noble' run: | sed -i '/#### Example Output/q' ./README.md echo '```sh' >> README.md @@ -73,7 +94,7 @@ jobs: echo '```' >> README.md - name: Commit README update - if: github.event_name == 'pull_request' + if: github.event_name == 'pull_request' && matrix.ubuntu == 'noble' run: | git config --global --add safe.directory "$GITHUB_WORKSPACE" git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com" @@ -82,7 +103,7 @@ jobs: git diff-index --quiet HEAD || git commit -m "Update README [skip ci]" && echo "push_readme=true" >> $GITHUB_ENV - name: Push README update to Pull Request - if: env.push_readme + if: env.push_readme && matrix.ubuntu == 'noble' uses: ad-m/github-push-action@v0.8.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/update-imagemagick.yml b/.github/workflows/update-imagemagick.yml index c001b55..51aeb6a 100644 --- a/.github/workflows/update-imagemagick.yml +++ b/.github/workflows/update-imagemagick.yml @@ -9,7 +9,7 @@ jobs: main: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.5 + - uses: actions/checkout@v4.1.6 - run: wget -O version.json "https://api.github.com/repos/ImageMagick/ImageMagick/releases/latest" - name: Get latest version id: version diff --git a/.github/workflows/update-libde265.yml b/.github/workflows/update-libde265.yml index b1df3bd..5f74e55 100644 --- a/.github/workflows/update-libde265.yml +++ b/.github/workflows/update-libde265.yml @@ -9,7 +9,7 @@ jobs: main: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.5 + - uses: actions/checkout@v4.1.6 - run: wget -O version.json "https://api.github.com/repos/strukturag/libde265/releases/latest" - name: Get latest version id: version diff --git a/.github/workflows/update-libheif.yml b/.github/workflows/update-libheif.yml index aa02249..e4457d1 100644 --- a/.github/workflows/update-libheif.yml +++ b/.github/workflows/update-libheif.yml @@ -9,7 +9,7 @@ jobs: main: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.5 + - uses: actions/checkout@v4.1.6 - run: wget -O version.json "https://api.github.com/repos/strukturag/libheif/releases/latest" - name: Get latest version id: version diff --git a/Dockerfile b/Dockerfile index de4d3e7..41ad20a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,6 @@ # Build Packages -FROM --platform=linux/amd64 ubuntu:jammy as builder +ARG UBUNTU_VERSION +FROM --platform=linux/amd64 ubuntu:${UBUNTU_VERSION} as builder SHELL ["/bin/bash", "-c"] ENV DEBIAN_FRONTEND=noninteractive @@ -28,7 +29,7 @@ RUN apt satisfy -y "$LIBHEIF_DEPENDENCIES" # Install ImageMagick dependencies ENV IMAGEMAGICK_DEPENDENCIES='\ - gsfonts,\ + fonts-urw-base35,\ libbz2-dev,\ libfontconfig1-dev (>= 2.1.0),\ libfreetype-dev (>= 2.8.0),\ @@ -58,7 +59,9 @@ WORKDIR libde265 RUN ./autogen.sh RUN ./configure RUN make -j$(nproc) -RUN checkinstall --pkgversion="$LIBDE265_VERSION" +RUN checkinstall \ + --pkgversion="$LIBDE265_VERSION" \ + --fstrans=no RUN mv libde265_*.deb ../binaries/ RUN pkg-config --exists --print-errors "libde265 = $LIBDE265_VERSION" WORKDIR / @@ -73,7 +76,8 @@ RUN make -j$(nproc) RUN checkinstall \ --pkgname="libheif" \ --pkgversion="$LIBHEIF_VERSION" \ - --requires="'$LIBHEIF_DEPENDENCIES, libde265 (>= $LIBDE265_VERSION)'" + --requires="'$LIBHEIF_DEPENDENCIES, libde265 (>= $LIBDE265_VERSION)'" \ + --fstrans=no RUN mv libheif_*.deb ../../binaries/ RUN pkg-config --exists --print-errors "libheif = $LIBHEIF_VERSION" WORKDIR / @@ -113,7 +117,8 @@ RUN make -j$(nproc) RUN checkinstall \ --pkgversion=$IMAGEMAGICK_EPOCH$(echo "$IMAGEMAGICK_VERSION" | cut -d- -f1) \ --pkgrelease=$(echo "$IMAGEMAGICK_VERSION" | cut -d- -f2) \ - --requires="'$IMAGEMAGICK_DEPENDENCIES, libde265 (>= $LIBDE265_VERSION), libheif (>= $LIBHEIF_VERSION)'" + --requires="'$IMAGEMAGICK_DEPENDENCIES, libde265 (>= $LIBDE265_VERSION), libheif (>= $LIBHEIF_VERSION)'" \ + --fstrans=no RUN ldconfig RUN mv imagemagick_*.deb ../binaries/ RUN [[ $(dpkg-query -W -f='${Version}' imagemagick) == $IMAGEMAGICK_EPOCH$IMAGEMAGICK_VERSION ]] @@ -126,7 +131,7 @@ RUN CODENAME=$( . /etc/os-release ; echo $UBUNTU_CODENAME) && \ WORKDIR / # Test package install -FROM --platform=linux/amd64 ubuntu:jammy as tester +FROM --platform=linux/amd64 ubuntu:${UBUNTU_VERSION} as tester COPY --from=builder binaries binaries SHELL ["/bin/bash", "-c"] ENV DEBIAN_FRONTEND=noninteractive @@ -188,7 +193,7 @@ RUN [[ $(magick -list format) =~ "DNG DNG r--" ]] RUN [[ $(magick -list format) =~ "AVIF HEIC rw+" ]] # Check font support -RUN [[ $(magick -list font) =~ "Helvetica" ]] +RUN [[ $(magick -list font) =~ "Nimbus Sans" ]] # Upgrade imagick php extension RUN printf "\n" | MAKEFLAGS="-j $(nproc)" pecl upgrade --force ./imagick.tgz diff --git a/README.md b/README.md index a5ccd08..f17fa2c 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # imagemagick-deb [![Build](https://github.com/vintagesucks/imagemagick-deb/actions/workflows/build.yml/badge.svg)](https://github.com/vintagesucks/imagemagick-deb/actions/workflows/build.yml) [![Update ImageMagick](https://github.com/vintagesucks/imagemagick-deb/actions/workflows/update-imagemagick.yml/badge.svg)](https://github.com/vintagesucks/imagemagick-deb/actions/workflows/update-imagemagick.yml) [![Update libde265](https://github.com/vintagesucks/imagemagick-deb/actions/workflows/update-libde265.yml/badge.svg)](https://github.com/vintagesucks/imagemagick-deb/actions/workflows/update-libde265.yml) [![Update libheif](https://github.com/vintagesucks/imagemagick-deb/actions/workflows/update-libheif.yml/badge.svg)](https://github.com/vintagesucks/imagemagick-deb/actions/workflows/update-libheif.yml) [![Dependabot](https://badgen.net/badge/Dependabot/enabled/green?icon=dependabot)](https://dependabot.com/) -[ImageMagick](https://imagemagick.org/) packaging for Ubuntu 22.04 (amd64) built with [CheckInstall](https://asic-linux.com.mx/~izto/checkinstall/). +[ImageMagick](https://imagemagick.org/) packaging for Ubuntu 22.04/24.04 (amd64) built with [CheckInstall](https://asic-linux.com.mx/~izto/checkinstall/). #### Goals * [x] Functionality on par with the [ImageMagick Homebrew Formula](https://github.com/Homebrew/homebrew-core/blob/master/Formula/i/imagemagick.rb) @@ -13,13 +13,13 @@ #### Building Linux and Mac ```sh -DOCKER_BUILDKIT=1 docker build --tag imagemagick-deb --output binaries . +DOCKER_BUILDKIT=1 docker build --build-arg UBUNTU_VERSION=noble --output binaries . ``` Windows ```ps1 $env:DOCKER_BUILDKIT = 1 -docker build --tag imagemagick-deb --output binaries . +docker build --build-arg UBUNTU_VERSION=noble --output binaries . ``` The packages can be found in the `./binaries` folder after the build. @@ -42,20 +42,20 @@ Version: ImageMagick 7.1.1-32 Q16-HDRI x86_64 e1de8c5eb:20240505 https://imagema Copyright: (C) 1999 ImageMagick Studio LLC License: https://imagemagick.org/script/license.php Features: Cipher DPC HDRI Modules OpenMP(4.5) -Delegates (built-in): bzlib fontconfig freetype gslib heic jbig jng jp2 jpeg lcms lqr ltdl lzma openexr png ps raw tiff webp x xml zlib -Compiler: gcc (11.4) +Delegates (built-in): bzlib fontconfig freetype gslib heic jbig jng jp2 jpeg lcms lqr ltdl lzma openexr png ps raw tiff webp x xml zlib zstd +Compiler: gcc (13.2) $ magick -list format Format Module Mode Description ------------------------------------------------------------------------------- - 3FR DNG r-- Hasselblad CFV/H3D39II Raw Format (0.20.2-Release) + 3FR DNG r-- Hasselblad CFV/H3D39II Raw Format (0.21.2-Release) 3G2 VIDEO r-- Media Container 3GP VIDEO r-- Media Container AAI* AAI rw+ AAI Dune image AI PDF rw- Adobe Illustrator CS2 APNG VIDEO rw+ Animated Portable Network Graphics ART* ART rw- PFS: 1st Publisher Clip Art - ARW DNG r-- Sony Alpha Raw Format (0.20.2-Release) + ARW DNG r-- Sony Alpha Raw Format (0.21.2-Release) ASHLAR* ASHLAR -w+ Image sequence laid out in continuous irregular courses AVI VIDEO r-- Microsoft Audio/Visual Interleaved AVIF HEIC rw+ AV1 Image File Format (1.17.6) @@ -81,9 +81,9 @@ $ magick -list format CLIP* CLIP rw+ Image Clip Mask CMYK* CMYK rw+ Raw cyan, magenta, yellow, and black samples CMYKA* CMYK rw+ Raw cyan, magenta, yellow, black, and alpha samples - CR2 DNG r-- Canon Digital Camera Raw Format (0.20.2-Release) - CR3 DNG r-- Canon Digital Camera Raw Format (0.20.2-Release) - CRW DNG r-- Canon Digital Camera Raw Format (0.20.2-Release) + CR2 DNG r-- Canon Digital Camera Raw Format (0.21.2-Release) + CR3 DNG r-- Canon Digital Camera Raw Format (0.21.2-Release) + CRW DNG r-- Canon Digital Camera Raw Format (0.21.2-Release) CUBE* CUBE r-- Cube LUT CUR* ICON rw- Microsoft icon CUT* CUT r-- DR Halo @@ -94,12 +94,12 @@ $ magick -list format (DICOM)", is available at http://medical.nema.org/. In particular, see part 5 which describes the image encoding (RLE, JPEG, JPEG-LS), and supplement 61 which adds JPEG-2000 encoding. - DCR DNG r-- Kodak Digital Camera Raw Format (0.20.2-Release) - DCRAW DNG r-- Raw Photo Decoder (dcraw) (0.20.2-Release) + DCR DNG r-- Kodak Digital Camera Raw Format (0.21.2-Release) + DCRAW DNG r-- Raw Photo Decoder (dcraw) (0.21.2-Release) DCX* PCX rw+ ZSoft IBM PC multi-page Paintbrush DDS* DDS rw+ Microsoft DirectDraw Surface - DFONT* TTF r-- Multi-face font package (Freetype 2.11.1) - DNG DNG r-- Digital Negative Raw Format (0.20.2-Release) + DFONT* TTF r-- Multi-face font package (Freetype 2.13.2) + DNG DNG r-- Digital Negative Raw Format (0.21.2-Release) DOT DOT --- Graphviz DPX* DPX rw- SMPTE 268M-2003 (DPX 2.0) Digital Moving Picture Exchange Bitmap, Version 2.0. @@ -117,8 +117,8 @@ $ magick -list format EPT EPT rw- Encapsulated PostScript with TIFF preview EPT2 EPT rw- Encapsulated PostScript Level II with TIFF preview EPT3 EPT rw+ Encapsulated PostScript Level III with TIFF preview - ERF DNG r-- Epson Raw Format (0.20.2-Release) - EXR EXR rw- High Dynamic-range (HDR) (OpenEXR 2.5.7) + ERF DNG r-- Epson Raw Format (0.21.2-Release) + EXR EXR rw- High Dynamic-range (HDR) (OpenEXR 3.1.5) FARBFELD* FARBFELD rw- Farbfeld FAX* FAX rw+ Group 3 FAX FAX machines use non-square pixels which are 1.5 times wider than @@ -127,7 +127,7 @@ $ magick -list format resized using a geometry of "150x100%". FF* FARBFELD rw- Farbfeld - FFF DNG r-- Hasselblad CFV/H3D39II Raw Format (0.20.2-Release) + FFF DNG r-- Hasselblad CFV/H3D39II Raw Format (0.21.2-Release) FILE* URL r-- Uniform Resource Locator (file://) FITS* FITS rw+ Flexible Image Transport System FL32* FL32 rw- FilmLight @@ -159,31 +159,31 @@ HISTOGRAM* HISTOGRAM -w- Histogram of the image ICB* TGA rw- Truevision Targa image ICO* ICON rw+ Microsoft icon ICON* ICON rw- Microsoft icon - IIQ DNG r-- Phase One Raw Format (0.20.2-Release) + IIQ DNG r-- Phase One Raw Format (0.21.2-Release) INFO INFO -w+ The image format and characteristics INLINE* INLINE rw+ Base64-encoded inline images IPL* IPL rw+ IPL Image Sequence ISOBRL* BRAILLE -w- ISO/TR 11548-1 format ISOBRL6* BRAILLE -w- ISO/TR 11548-1 format 6dot - J2C* JP2 rw- JPEG-2000 Code Stream Syntax (2.4.0) - J2K* JP2 rw- JPEG-2000 Code Stream Syntax (2.4.0) + J2C* JP2 rw- JPEG-2000 Code Stream Syntax (2.5.0) + J2K* JP2 rw- JPEG-2000 Code Stream Syntax (2.5.0) JBG* JBIG rw+ Joint Bi-level Image experts Group interchange format (2.1) JBIG* JBIG rw+ Joint Bi-level Image experts Group interchange format (2.1) JNG* PNG rw- JPEG Network Graphics See http://www.libpng.org/pub/mng/ for details about the JNG format. JNX* JNX r-- Garmin tile format - JP2* JP2 rw- JPEG-2000 File Format Syntax (2.4.0) - JPC* JP2 rw- JPEG-2000 Code Stream Syntax (2.4.0) - JPE* JPEG rw- Joint Photographic Experts Group JFIF format (libjpeg-turbo 2.1.2) - JPEG* JPEG rw- Joint Photographic Experts Group JFIF format (libjpeg-turbo 2.1.2) - JPG* JPEG rw- Joint Photographic Experts Group JFIF format (libjpeg-turbo 2.1.2) - JPM* JP2 rw- JPEG-2000 File Format Syntax (2.4.0) - JPS* JPEG rw- Joint Photographic Experts Group JFIF format (libjpeg-turbo 2.1.2) - JPT* JP2 rw- JPEG-2000 File Format Syntax (2.4.0) + JP2* JP2 rw- JPEG-2000 File Format Syntax (2.5.0) + JPC* JP2 rw- JPEG-2000 Code Stream Syntax (2.5.0) + JPE* JPEG rw- Joint Photographic Experts Group JFIF format (libjpeg-turbo 2.1.5) + JPEG* JPEG rw- Joint Photographic Experts Group JFIF format (libjpeg-turbo 2.1.5) + JPG* JPEG rw- Joint Photographic Experts Group JFIF format (libjpeg-turbo 2.1.5) + JPM* JP2 rw- JPEG-2000 File Format Syntax (2.5.0) + JPS* JPEG rw- Joint Photographic Experts Group JFIF format (libjpeg-turbo 2.1.5) + JPT* JP2 rw- JPEG-2000 File Format Syntax (2.5.0) JSON JSON -w+ The image format and characteristics - K25 DNG r-- Kodak Digital Camera Raw Format (0.20.2-Release) - KDC DNG r-- Kodak Digital Camera Raw Format (0.20.2-Release) + K25 DNG r-- Kodak Digital Camera Raw Format (0.21.2-Release) + KDC DNG r-- Kodak Digital Camera Raw Format (0.21.2-Release) KERNEL* KERNEL -w- Morphology Kernel LABEL* LABEL r-- Image label M2V VIDEO rw+ MPEG Video Stream @@ -193,33 +193,33 @@ HISTOGRAM* HISTOGRAM -w- Histogram of the image MASK* MASK rw+ Image Clip Mask MAT MAT rw+ MATLAB level 5 image format MATTE* MATTE -w+ MATTE format - MDC DNG r-- Minolta Digital Camera Raw Format (0.20.2-Release) - MEF DNG r-- Mamiya Raw Format (0.20.2-Release) + MDC DNG r-- Minolta Digital Camera Raw Format (0.21.2-Release) + MEF DNG r-- Mamiya Raw Format (0.21.2-Release) MIFF* MIFF rw+ Magick Image File Format MKV VIDEO rw+ Multimedia Container - MNG* PNG rw+ Multiple-image Network Graphics (libpng 1.6.37) + MNG* PNG rw+ Multiple-image Network Graphics (libpng 1.6.43) See http://www.libpng.org/pub/mng/ for details about the MNG format. MONO* MONO rw- Raw bi-level bitmap - MOS DNG r-- Aptus Leaf Raw Format (0.20.2-Release) + MOS DNG r-- Aptus Leaf Raw Format (0.21.2-Release) MOV VIDEO rw+ MPEG Video Stream MP4 VIDEO rw+ VIDEO-4 Video Stream MPC* MPC rw+ Magick Pixel Cache image format MPEG VIDEO rw+ MPEG Video Stream MPG VIDEO rw+ MPEG Video Stream - MPO* JPEG r-- Joint Photographic Experts Group JFIF format (libjpeg-turbo 2.1.2) - MRW DNG r-- Sony (Minolta) Raw Format (0.20.2-Release) + MPO* JPEG r-- Joint Photographic Experts Group JFIF format (libjpeg-turbo 2.1.5) + MRW DNG r-- Sony (Minolta) Raw Format (0.21.2-Release) MSL* MSL rw+ Magick Scripting Language MSVG* SVG rw+ ImageMagick's own SVG internal renderer MTV* MTV rw+ MTV Raytracing image format MVG* MVG rw- Magick Vector Graphics - NEF DNG r-- Nikon Digital SLR Camera Raw Format (0.20.2-Release) - NRW DNG r-- Nikon Digital SLR Camera Raw Format (0.20.2-Release) + NEF DNG r-- Nikon Digital SLR Camera Raw Format (0.21.2-Release) + NRW DNG r-- Nikon Digital SLR Camera Raw Format (0.21.2-Release) NULL* NULL rw- Constant image of uniform color ORA ORA --- OpenRaster format - ORF DNG r-- Olympus Digital Camera Raw Format (0.20.2-Release) + ORF DNG r-- Olympus Digital Camera Raw Format (0.21.2-Release) OTB* OTB rw- On-the-air bitmap - OTF* TTF r-- Open Type font (Freetype 2.11.1) + OTF* TTF r-- Open Type font (Freetype 2.13.2) PAL* UYVY rw- 16bit/pixel interleaved YUV PALM* PALM rw+ Palm pixmap PAM* PNM rw+ Common 2-dimensional bitmap format @@ -234,10 +234,10 @@ HISTOGRAM* HISTOGRAM -w- Histogram of the image PDB* PDB rw+ Palm Database ImageViewer Format PDF PDF rw+ Portable Document Format PDFA PDF rw+ Portable Document Archive Format - PEF DNG r-- Pentax Electronic Raw Format (0.20.2-Release) + PEF DNG r-- Pentax Electronic Raw Format (0.21.2-Release) PES* PES r-- Embrid Embroidery Format - PFA* TTF r-- Postscript Type 1 font (ASCII) (Freetype 2.11.1) - PFB* TTF r-- Postscript Type 1 font (binary) (Freetype 2.11.1) + PFA* TTF r-- Postscript Type 1 font (ASCII) (Freetype 2.13.2) + PFB* TTF r-- Postscript Type 1 font (binary) (Freetype 2.13.2) PFM* PNM rw+ Portable float format PGM* PNM rw+ Portable graymap format (gray scale) PGX* PGX rw- JPEG 2000 uncompressed format @@ -245,9 +245,9 @@ HISTOGRAM* HISTOGRAM -w- Histogram of the image PICON* XPM rw- Personal Icon PICT* PICT rw- Apple Macintosh QuickDraw/PICT PIX* PIX r-- Alias/Wavefront RLE image format - PJPEG* JPEG rw- Joint Photographic Experts Group JFIF format (libjpeg-turbo 2.1.2) + PJPEG* JPEG rw- Joint Photographic Experts Group JFIF format (libjpeg-turbo 2.1.5) PLASMA* PLASMA r-- Plasma fractal image - PNG* PNG rw- Portable Network Graphics (libpng 1.6.37) + PNG* PNG rw- Portable Network Graphics (libpng 1.6.43) See http://www.libpng.org/ for details about the PNG format. PNG00* PNG rw- PNG inheriting bit-depth, color-type from original, if possible PNG24* PNG rw- opaque or binary transparent 24-bit RGB @@ -268,9 +268,9 @@ POCKETMOD PDF rw+ Pocketmod Personal Organizer PWP* PWP r-- Seattle Film Works QOI* QOI rw- Quite OK image format RADIAL-GRADIENT* GRADIENT r-- Gradual radial passing from one shade to another - RAF DNG r-- Fuji CCD-RAW Graphic Raw Format (0.20.2-Release) + RAF DNG r-- Fuji CCD-RAW Graphic Raw Format (0.21.2-Release) RAS* SUN rw+ SUN Rasterfile - RAW DNG r-- Raw (0.20.2-Release) + RAW DNG r-- Raw (0.21.2-Release) RGB* RGB rw+ Raw red, green, and blue samples RGB565* RGB r-- Raw red, green, blue samples in 565 format RGBA* RGB rw+ Raw red, green, blue, and alpha samples @@ -278,9 +278,9 @@ RADIAL-GRADIENT* GRADIENT r-- Gradual radial passing from one shade to anothe RGF* RGF rw- LEGO Mindstorms EV3 Robot Graphic Format (black and white) RLA* RLA r-- Alias/Wavefront image RLE* RLE r-- Utah Run length encoded image - RMF DNG r-- Raw Media Format (0.20.2-Release) - RW2 DNG r-- Panasonic Lumix Raw Format (0.20.2-Release) - RWL DNG r-- Leica Raw Format (0.20.2-Release) + RMF DNG r-- Raw Media Format (0.21.2-Release) + RW2 DNG r-- Panasonic Lumix Raw Format (0.21.2-Release) + RWL DNG r-- Leica Raw Format (0.21.2-Release) SCR* SCR r-- ZX-Spectrum SCREEN$ SCT* SCT r-- Scitex HandShake SFW* SFW r-- Seattle Film Works @@ -289,27 +289,27 @@ RADIAL-GRADIENT* GRADIENT r-- Gradual radial passing from one shade to anothe SIX* SIXEL rw- DEC SIXEL Graphics Format SIXEL* SIXEL rw- DEC SIXEL Graphics Format SPARSE-COLOR* TXT -w+ Sparse Color - SR2 DNG r-- Sony Raw Format 2 (0.20.2-Release) - SRF DNG r-- Sony Raw Format (0.20.2-Release) - SRW DNG r-- Samsung Raw Format (0.20.2-Release) + SR2 DNG r-- Sony Raw Format 2 (0.21.2-Release) + SRF DNG r-- Sony Raw Format (0.21.2-Release) + SRW DNG r-- Samsung Raw Format (0.21.2-Release) STEGANO* STEGANO r-- Steganographic image - STI DNG r-- Sinar CaptureShop Raw Format (0.20.2-Release) + STI DNG r-- Sinar CaptureShop Raw Format (0.21.2-Release) STRIMG* STRIMG rw- String to image and back SUN* SUN rw+ SUN Rasterfile - SVG* SVG rw+ Scalable Vector Graphics (XML 2.9.13) - SVGZ* SVG rw+ Compressed Scalable Vector Graphics (XML 2.9.13) + SVG* SVG rw+ Scalable Vector Graphics (XML 2.9.14) + SVGZ* SVG rw+ Compressed Scalable Vector Graphics (XML 2.9.14) TEXT* TXT r-- Text TGA* TGA rw- Truevision Targa image THUMBNAIL* THUMBNAIL -w+ EXIF Profile Thumbnail - TIFF* TIFF rw+ Tagged Image File Format (LIBTIFF, Version 4.3.0) + TIFF* TIFF rw+ Tagged Image File Format (LIBTIFF, Version 4.5.1) Compression options: None, Fax/Group3, Group4, JBIG, JPEG, LERC, LZW, LZMA, RLE, ZIP, ZSTD, WEBP - TIFF64* TIFF rw+ Tagged Image File Format (64-bit) (LIBTIFF, Version 4.3.0) + TIFF64* TIFF rw+ Tagged Image File Format (64-bit) (LIBTIFF, Version 4.5.1) Compression options: None, Fax/Group3, Group4, JBIG, JPEG, LERC, LZW, LZMA, RLE, ZIP, ZSTD, WEBP TILE* TILE r-- Tile image with a texture TIM* TIM r-- PSX TIM TM2* TIM2 r-- PS2 TIM2 - TTC* TTF r-- TrueType font collection (Freetype 2.11.1) - TTF* TTF r-- TrueType font (Freetype 2.11.1) + TTC* TTF r-- TrueType font collection (Freetype 2.13.2) + TTF* TTF r-- TrueType font (Freetype 2.13.2) TXT* TXT rw+ Text UBRL* BRAILLE -w- Unicode Text format UBRL6* BRAILLE -w- Unicode Text format 6dot @@ -323,11 +323,11 @@ THUMBNAIL* THUMBNAIL -w+ EXIF Profile Thumbnail VST* TGA rw- Truevision Targa image WBMP* WBMP rw- Wireless Bitmap (level 0) image WEBM VIDEO rw+ Open Web Media - WEBP* WEBP rw+ WebP Image Format (libwebp 1.2.2 [020F]) + WEBP* WEBP rw+ WebP Image Format (libwebp 1.3.2 [020F]) WMV VIDEO rw+ Windows Media Video WPG* WPG rw- Word Perfect Graphics X* X rw+ X Image - X3F DNG r-- Sigma Camera RAW Format (0.20.2-Release) + X3F DNG r-- Sigma Camera RAW Format (0.21.2-Release) XBM* XBM rw- X Windows system bitmap (black and white) XC* XC r-- Constant image uniform color XCF* XCF r-- GIMP image