libvips で heic フォーマットの変換に対応する

apt-get install libvips

で install した libvips は、heic フォーマットに対応していない。

例えば ruby-vips で使うような場合は、以下のようにソースコードからコンパイルする必要があります。

FROM ruby:3.2.2-slim as base

# ==============================
# libvips
# ==============================
FROM base as libvips

RUN set -ex \
  && apt-get update \
  && apt-get install -y curl automake libtool cmake libglib2.0-dev meson \
  && apt-get install -y libspng-dev libopenjp2-7-dev libjxl-dev librsvg2-dev libwebp-dev libtiff-dev libexif-dev libimagequant-dev libffi-dev

WORKDIR /usr/local/src

RUN curl -sL https://github.com/strukturag/libde265/archive/refs/tags/v1.0.15.tar.gz | tar -xz && \
    cd libde265-1.0.15 && \
    ./autogen.sh && \
    ./configure && \
    make && \
    make install

RUN curl -sL https://github.com/videolan/x265/archive/refs/tags/3.4.tar.gz | tar -xz && \
    cd x265-3.4/build && \
    cmake ../source && \
    make && \
    make install

# 1.17 だと実行時エラーが出る
RUN curl -sL https://github.com/strukturag/libheif/archive/refs/tags/v1.16.2.tar.gz | tar -xz && \
    cd libheif-1.16.2 && \
    mkdir build && \
    cd build && \
    cmake --preset=release .. && \
    make && \
    make install

RUN curl -sL https://github.com/libvips/libvips/archive/refs/tags/v8.15.1.tar.gz | tar -xz && \
    cd libvips-8.15.1 && \
    meson setup ./build && \
    cd build && \
    meson compile && \
    meson install