← Back to list

Convert AVIF to PNG in various programming languages

Here are practical ways to convert AVIF to PNG in various programming languages and environments, including Nlibraries, tools, and sample…

Convert Platform · 2026-01-08 13:24 · 0 claps · 2.5 min read
#avif-to-png #avif #png #convert
Open on Medium ↗
Wiki topics: 💻 · Programming

Convert **AVIF to PNG in various programming languages**

Here are practical ways to convert AVIF to PNG in various programming languages and environments, including Nlibraries, tools, and sample approaches:

Avif To Png

Avif To Png

1. Command-Line / Tool-Based Conversion (All Languages)

You can use universal tools from the command line and integrate them into scripts regardless of programming language:

ImageMagick (CLI / scripting / bindings)

  • Convert a single file:
  • magick input.avif output.png
  • Bulk conversion (Linux/macOS):
  • for f in *.avif; do magick "$f" "${f%.avif}.png"; done

ImageMagick supports many languages via bindings (C/C++, Java, .NET, Perl, PHP, Python, etc.) because it has APIs like MagickWand / MagickCore / PerlMagick / JMagick / MagickNet.

FFmpeg (CLI / scripts)

  • Simple conversion:
  • ffmpeg -i input.avif output.png

Useful in automation/batch scripts across platforms.

libavif / libheif CLI

  • Use avifdec (from libavif) to decode to PNG:
  • avifdec input.avif output.png

These tools are part of native AVIF libraries that you can call from build systems or makefiles.

2. Python

Pillow + pillow-avif-plugin (simplest)

Install:

pip install Pillow pillow-avif-plugin

Conversion code:

from PIL import Image
import pillow_avif  # enables AVIF support
img = Image.open("input.avif")
img.save("output.png")

This uses Pillow image API with AVIF plugin support.

Alternative: Aspose.Imaging (more features)

pip install aspose-imaging-python-net

This library permits advanced options, including PNG conversion control (compression, metadata).

3. JavaScript / Node.js

Sharp (fast native image processing)

Install:

npm install sharp

Convert AVIF to PNG:

import sharp from "sharp";
await sharp("input.avif")
  .png()
  .toFile("output.png");

sharp uses libvips under the hood and supports AVIF decoding/PNG encoding.

Browser-Side Conversion (Web UI)

You can handle a file upload and convert client-side using browser APIs and canvas, or simpler with <input type="file"> and createImageBitmap. Libraries like browser-image-compression help manage formats.

4. C / C++

Using libavif

  • Official AVIF library with encoding/decoding APIs.
  • Example workflow:
  1. Load AVIF with libavif decode API.
  2. Write raw pixel data to PNG with libpng or another PNG library.

CLI tools from libavif:

avifdec input.avif output.png

(This uses built-in example tool.)

Using libheif

  • libheif can decode AVIF / HEIF and output PNG via its sample tool heif-dec.

Code example in C++ would wrap libavif/libheif decode and PNG writing (libpng).

5. PHP

GD / Imagick extensions

  • PHP GD supports AVIF starting with PHP 8.1 (AVIF read/write).
$img = imagecreatefromavif("input.avif");  // GD function
imagepng($img, "output.png");
imagedestroy($img);

Imagick (ImageMagick binding)

$imagick = new Imagick("input.avif");
$imagick->setImageFormat("png");
$imagick->writeImage("output.png");

6. Java

You can use bindings to ImageMagick or call a native tool:

JMagick (ImageMagick Java API)

ImageInfo info = new ImageInfo("input.avif");
MagickImage image = new MagickImage(info);
image.setFileName("output.png");
image.writeImage(info);

JNI / Process Execution

  • Execute ImageMagick/FFmpeg from Java via ProcessBuilder.

7. .NET (C#, F#)

Magick.NET (ImageMagick wrapper)

using ImageMagick;
using (var img = new MagickImage("input.avif"))
{
    img.Format = MagickFormat.Png;
    img.Write("output.png");
}

System.Drawing / GDIPLUS

Not recommended for AVIF directly; use Magick.NET or call native tool.

8. Go

You can use native libraries or call external tools:

  • Wrap libavif via cgo.
  • Or execute ffmpeg/magick from Go via os/exec.
  • Example with os/exec:
cmd := exec.Command("magick", "input.avif", "output.png")
cmd.Run()

9. Ruby

MiniMagick (ImageMagick wrapper)

require "mini_magick"
image = MiniMagick::Image.open("input.avif")
image.format "png"
image.write "output.png"

Summary of Options

Approach Language Notes ImageMagick CLI / APIAnyUniversal, supports many bindings FFmpeg CLIAnyFlexible multimedia frameworkPillow + pillow-avif-pluginPythonSimple codeSharpNode.js/JSHigh-performance nativelibavif / libheifC/C++Low-level controlGD / ImagickPHPNative PHP conversionMagick.NET.NETManaged ImageMagick wrapperMiniMagickRubyRuby wrapper for ImageMagick

Quick Web Conversion (no code)

If you need a tool without programming:

  • Use **Convert.APP AVIF to PNG, CloudConvert, Cloudinary, or CoolUtils* online converters for quick AVIF → PNG* conversion.

If you want, I can provide code templates for specific languages (e.g., full runnable scripts) tailored to your tech stack.


메타데이터
post_id
f30f622e4fca
slug
convert-avif-to-png-in-various-programming-languages-f30f622e4fca
url
https://medium.com/@convert.app/convert-avif-to-png-in-various-programming-languages-f30f622e4fca
canonical_url
https://medium.com/@convert.app/convert-avif-to-png-in-various-programming-languages-f30f622e4fca
author_url
https://medium.com/@convert.app
status
ok
fetched_at
2026-06-22 00:24:50