Add level constructor opt for multi-level input #2222

This commit is contained in:
Lovell Fuller
2020-06-06 16:10:56 +01:00
parent 98e0516ac1
commit 7f142bddb3
7 changed files with 65 additions and 29 deletions

View File

@@ -88,6 +88,10 @@ namespace sharp {
if (HasAttr(input, "page")) {
descriptor->page = AttrAsUint32(input, "page");
}
// Multi-level input (OpenSlide)
if (HasAttr(input, "level")) {
descriptor->level = AttrAsUint32(input, "level");
}
// Create new image
if (HasAttr(input, "createChannels")) {
descriptor->createChannels = AttrAsUint32(input, "createChannels");
@@ -292,6 +296,9 @@ namespace sharp {
option->set("n", descriptor->pages);
option->set("page", descriptor->page);
}
if (imageType == ImageType::OPENSLIDE) {
option->set("level", descriptor->level);
}
image = VImage::new_from_buffer(descriptor->buffer, descriptor->bufferLength, nullptr, option);
if (imageType == ImageType::SVG || imageType == ImageType::PDF || imageType == ImageType::MAGICK) {
image = SetDensity(image, descriptor->density);
@@ -341,6 +348,9 @@ namespace sharp {
option->set("n", descriptor->pages);
option->set("page", descriptor->page);
}
if (imageType == ImageType::OPENSLIDE) {
option->set("level", descriptor->level);
}
image = VImage::new_from_file(descriptor->file.data(), option);
if (imageType == ImageType::SVG || imageType == ImageType::PDF || imageType == ImageType::MAGICK) {
image = SetDensity(image, descriptor->density);

View File

@@ -57,6 +57,7 @@ namespace sharp {
int rawHeight;
int pages;
int page;
int level;
int createChannels;
int createWidth;
int createHeight;
@@ -75,6 +76,7 @@ namespace sharp {
rawHeight(0),
pages(1),
page(0),
level(0),
createChannels(0),
createWidth(0),
createHeight(0),