Commit 0d4c2a88 for libheif

commit 0d4c2a88985bb259b93b3bae7e5bb12d1d012b2a
Author: Devon Sookhoo <devonsookhoo14@gmail.com>
Date:   Mon Mar 2 09:44:01 2026 -0700

    encode monochrome htj2k

diff --git a/libheif/plugins/encoder_openjph.cc b/libheif/plugins/encoder_openjph.cc
index 284e7176..58ac9c90 100644
--- a/libheif/plugins/encoder_openjph.cc
+++ b/libheif/plugins/encoder_openjph.cc
@@ -740,7 +740,13 @@ std::vector<heif_channel> build_SIZ(encoder_struct_ojph *encoder, const heif_ima
   heif_chroma chroma = heif_image_get_chroma_format(image);

   encoder->codestream.set_planar(true);
-  sourceChannels = {heif_channel_Y, heif_channel_Cb, heif_channel_Cr};
+
+  if (chroma == heif_chroma_monochrome) {
+    sourceChannels = {heif_channel_Y};
+  } else {
+    sourceChannels = {heif_channel_Y, heif_channel_Cb, heif_channel_Cr};
+  }
+
   siz.set_num_components((ojph::ui32)sourceChannels.size());
   for (ojph::ui32 i = 0; i < siz.get_num_components(); i++) {
     int bit_depth = heif_image_get_bits_per_pixel_range(image, sourceChannels[i]);
@@ -771,7 +777,8 @@ heif_error ojph_encode_image(void *encoder_raw, const heif_image *image, heif_im
 {
   encoder_struct_ojph* encoder = (encoder_struct_ojph*) encoder_raw;

-  if (heif_image_get_colorspace(image) != heif_colorspace_YCbCr) {
+  if (heif_image_get_colorspace(image) != heif_colorspace_YCbCr &&
+      heif_image_get_colorspace(image) != heif_colorspace_monochrome) {
     return {
       heif_error_Encoding_error,
       heif_suberror_Unspecified,