Commit 193a0ca0 for libheif
commit 193a0ca022f2efad968df74ea4be14519dee9e25
Author: Dirk Farin <dirk.farin@gmail.com>
Date: Sat Mar 21 00:38:49 2026 +0100
fix writing unci images with transformation properties (#1730)
diff --git a/libheif/image-items/tiled.cc b/libheif/image-items/tiled.cc
index 4756980e..d2171b09 100644
--- a/libheif/image-items/tiled.cc
+++ b/libheif/image-items/tiled.cc
@@ -844,7 +844,7 @@ ImageItem_Tiled::decode_compressed_image(const heif_decoding_options& options,
}
else {
return Error{heif_error_Unsupported_feature, heif_suberror_Unspecified,
- "'tili' images can only be access per tile"};
+ "'tili' images can only be accessed per tile"};
}
}
diff --git a/libheif/image-items/unc_image.cc b/libheif/image-items/unc_image.cc
index 9fed8a47..d0cba6a4 100644
--- a/libheif/image-items/unc_image.cc
+++ b/libheif/image-items/unc_image.cc
@@ -136,12 +136,12 @@ Result<std::shared_ptr<ImageItem_uncompressed>> ImageItem_uncompressed::add_unci
auto unci_image = std::make_shared<ImageItem_uncompressed>(ctx, unci_id);
unci_image->set_resolution(parameters->image_width, parameters->image_height);
unci_image->m_unc_encoder = std::move(*uncEncoder);
- unci_image->m_encoding_options = *encoding_options;
+ unci_image->m_tile_encoding_options = *encoding_options;
+ unci_image->m_tile_encoding_options.image_orientation = heif_orientation_normal;
ctx->insert_image_item(unci_id, unci_image);
-
// Generate headers
// --- generate configuration property boxes
@@ -180,6 +180,11 @@ Result<std::shared_ptr<ImageItem_uncompressed>> ImageItem_uncompressed::add_unci
unci_image->add_property_without_deduplication(icef, true); // icef is empty. A normal add_property() would lead to a wrong deduplication.
}
+ // Add transformative properties
+
+ ctx->get_heif_file()->add_orientation_properties(unci_id, encoding_options->image_orientation);
+
+
// Create empty image. If we use compression, we append the data piece by piece.
if (parameters->compression == heif_unci_compression_off) {
diff --git a/libheif/image-items/unc_image.h b/libheif/image-items/unc_image.h
index 889f7255..69c5c7f7 100644
--- a/libheif/image-items/unc_image.h
+++ b/libheif/image-items/unc_image.h
@@ -100,7 +100,7 @@ private:
std::shared_ptr<class Encoder_uncompressed> m_encoder;
std::unique_ptr<const unc_encoder> m_unc_encoder;
- heif_encoding_options m_encoding_options;
+ heif_encoding_options m_tile_encoding_options;
/*
Result<ImageItem::CodedImageData> generate_headers(const std::shared_ptr<const HeifPixelImage>& src_image,