diff --git a/pkgs/development/libraries/libimagequant/default.nix b/pkgs/development/libraries/libimagequant/default.nix
new file mode 100644
index 00000000000..c5a47171278
--- /dev/null
+++ b/pkgs/development/libraries/libimagequant/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, unzip }:
+
+with stdenv;
+
+let
+  version = "2.12.1";
+in
+  mkDerivation {
+    name = "libimagequant-${version}";
+    src = fetchFromGitHub {
+      owner = "ImageOptim";
+      repo = "libimagequant";
+      rev = "${version}";
+      sha256 = "0r7zgsnhqci2rjilh9bzw43miwp669k6b7q16hdjzrq4nr0xpvbl";
+    };
+
+    preConfigure = ''
+      patchShebangs ./configure
+    '';
+
+    meta = {
+      homepage = https://pngquant.org/lib/;
+      description = "Image quantization library";
+      longDescription = "Small, portable C library for high-quality conversion of RGBA images to 8-bit indexed-color (palette) images.";
+      license = lib.licenses.gpl3Plus;
+      platforms = lib.platforms.unix;
+    };
+  }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index c58ea359c27..d413dbfa055 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -10735,6 +10735,8 @@ with pkgs;
 
   libiec61883 = callPackage ../development/libraries/libiec61883 { };
 
+  libimagequant = callPackage ../development/libraries/libimagequant {};
+
   libinfinity = callPackage ../development/libraries/libinfinity { };
 
   libinput = callPackage ../development/libraries/libinput {