We don't know of a general answer to this question that will always work.
For example:
Some previews (on some cameras) contain a black border on the right/left, which is not part of the RAW image, so no pixel in RAW corresponds to the left-top (or any) preview image corner.
The lens geometry correction has been applied to the preview, so its edges do not correspond to any straight horizontal/vertical line in the RAW
Aspect ratio in the preview may be not exactly the same as RAW image area.
In some cases imgdata.sizes.raw_inset_crops[..] may work.
Dear Alex,
first of all, many thanks for the wonderful libraw and your effort.
I'm currently dealing with Canon R5 CR3.
I can sucessfully decode the largest thumbnail(JPEG 1620x1080) using this following code.
//--------------------
rawp->unpack_thumb_ex(1);
rawimgthumb = rawp->dcraw_make_mem_thumb(&err); //store unpacked and processed raw image
Howerver, it seems that the start pxiel(left-top conner) of the decoded thumbnail image is not the same of the start pixel of the raw image(8191x5463 or with frame 8352x5586).
How can we match the exackt position between the thumbnail and the raw image?
Is there any parameter about the croping region of the thumbnail from raw image?
tried the 64-bit version and it worked fine, but using the compiled 32-bit version had issue. don't know why. i'll try to investigate on this more (maybe some configuration issues on my side). are there difference between 64 and 32?
I have tried to add some options like "-t 5 -Z -" (flip 90 CCW and output to stdout), but it seems like it doesn't apply the flip on the output. am i missing something?
Posting the solution here if ever someone encounters the same issue,
apparently, in the VS project of LibRaw, you need to make the 'Struct Member Alignment' in the project properties the same with the generated library of libjpeg
having different settings results to unequal struct size between libjpeg and libraw (JERR_BAD_STRUCT_SIZE)
Why ask things that you can check yourself in a minute?
Yes, it will decode (so called) 'raw image data', but in this specific case it is not RAW, but processed 8-bit/3channel data with only 256 different values per channel.
Embedded JPEG previews are not decoded by LibRaw but provided as is (JPEG bytearray)
Do you mean in the dng sdk build? As stated in the dng sdk readme,
"XMP SDK
Building DNG SDK requires the XMP SDK. This package includes the XMP
SDK headers and pre-built static libraries for Mac OS (64-bit) and
Windows (32-bit and 64-bit). Thus if you plan to build the DNG SDK on
Mac OS using Xcode and/or on Windows using Visual Studio/C++, no
further action is needed."
I'm not sure how to include it in the project as it said no further action is needed in Windows.
We do not provide direct user support for other's end user products (with the exception of ours end-user products, of course). If Affinity takes money from its users, they should be engaged in support without throwing this ball to us.
LibRAW is targeted to developers, we're ready to provide support for Affinity team, but they never contacted us.
Also, you may just wait: Panasonic DC-S5 II is supported since March, 2023; We'll release it in public snapshot according to our release schedule: https://www.libraw.org/#updatepolicy
Unprocessed /linearized RAW values (after LibRaw::unpack() ) is probably what is you're looking for.
RawSpeed licensing is out of our control, if it is licensed under LGPL terms we're unable to change it
many thnaks for the prompt response.
i'll try to test the parameter imgdata.sizes.raw_inset_crops[..].
best regards.
We don't know of a general answer to this question that will always work.
For example:
In some cases imgdata.sizes.raw_inset_crops[..] may work.
Dear Alex,
first of all, many thanks for the wonderful libraw and your effort.
I'm currently dealing with Canon R5 CR3.
I can sucessfully decode the largest thumbnail(JPEG 1620x1080) using this following code.
//--------------------
rawp->unpack_thumb_ex(1);
rawimgthumb = rawp->dcraw_make_mem_thumb(&err); //store unpacked and processed raw image
Mat rawData(1, rawimgthumb->data_size, CV_8UC1, (void*)rawp->imgdata.thumbnail.thumb);
thumbimg_file = imdecode(rawData, 1); //BGR
//--------------------
Howerver, it seems that the start pxiel(left-top conner) of the decoded thumbnail image is not the same of the start pixel of the raw image(8191x5463 or with frame 8352x5586).
How can we match the exackt position between the thumbnail and the raw image?
Is there any parameter about the croping region of the thumbnail from raw image?
Thank you for your response in advance.
Kim
The file is a lossy compressed dng image. I have attached it here, https://drive.google.com/file/d/18QaZiL_YBEXwrmKd9638zHuWpOo54V5y/view
I have compiled in 32-bit with USE_JPEG enabled, linked with libjpeg library
I was able to decode using "-Z -". But adding additional options such as " -w -H 0 -o 0 -Z -" prints "Request for nonexisting image number"
Generally, there shouldn't be a difference between 32- and 64-bit versions.
In practice, 32-bit builds have not been tested for a long time.
Could you please provide the RAW file you're testing with: for analysis
tried the 64-bit version and it worked fine, but using the compiled 32-bit version had issue. don't know why. i'll try to investigate on this more (maybe some configuration issues on my side). are there difference between 64 and 32?
Works for me: dcraw_emu.exe -t 5 -Z - filename >0.ppm
(-T ... > 0.tif works too)
I have tried to add some options like "-t 5 -Z -" (flip 90 CCW and output to stdout), but it seems like it doesn't apply the flip on the output. am i missing something?
"-Z -" command worked great for me! Thanks a lot!
dcraw_emu w/o args displays:
suf => replace input filename last extension
- => output to stdout
filename.suf => output to filename.suf
is that what you were asking about?
Posting the solution here if ever someone encounters the same issue,
apparently, in the VS project of LibRaw, you need to make the 'Struct Member Alignment' in the project properties the same with the generated library of libjpeg
having different settings results to unequal struct size between libjpeg and libraw (JERR_BAD_STRUCT_SIZE)
Have you tried building a dng_validate example from DNG SDK?
Your error screenshot lists missing symbols from XMPCore library, that's why I'm pretty sure you didn't add it to the your build.
Sorry we can't help with libjpeg issues
I have tried to build libraw as you suggested with USE_JPEG and USE_JPEG8, I have also built it with and without USE_ZLIB just in case.
I was able to open_buffer but when I raw_unpack, it throws an exception on lossy_dng_load_raw -> jpeg_create_decompress. on this line,
uSize = SIZEOF(struct jpeg_decompress_struct);
if (structsize != uSize)
ERREXIT2(cinfo, JERR_BAD_STRUCT_SIZE,
(int) SIZEOF(struct jpeg_decompress_struct), (int) structsize);
Not sure why I'm getting this error :(
Why ask things that you can check yourself in a minute?
Yes, it will decode (so called) 'raw image data', but in this specific case it is not RAW, but processed 8-bit/3channel data with only 256 different values per channel.
Embedded JPEG previews are not decoded by LibRaw but provided as is (JPEG bytearray)
Will it also decode the high resolution raw image data? or just the internal embedded jpeg image?
LibRaw 0.21 supports this file if built with -DUSE_JPEG -DUSE_JPEG8 and linked with libjpeg (or replacement) library
Do you mean in the dng sdk build? As stated in the dng sdk readme,
"XMP SDK
Building DNG SDK requires the XMP SDK. This package includes the XMP
SDK headers and pre-built static libraries for Mac OS (64-bit) and
Windows (32-bit and 64-bit). Thus if you plan to build the DNG SDK on
Mac OS using Xcode and/or on Windows using Visual Studio/C++, no
further action is needed."
I'm not sure how to include it in the project as it said no further action is needed in Windows.
Sorry about that, I have changed to public, here is the link
https://drive.google.com/file/d/18QaZiL_YBEXwrmKd9638zHuWpOo54V5y/view?u...
Looks like you have not added required XMP SDK (XMPCore) to your build.
The link you provided is not for everyone, but asks for 'request access permissions'.
Please change to public
We do not provide direct user support for other's end user products (with the exception of ours end-user products, of course). If Affinity takes money from its users, they should be engaged in support without throwing this ball to us.
LibRAW is targeted to developers, we're ready to provide support for Affinity team, but they never contacted us.
Please send this link to Affinity team: https://www.libraw.org/extended-support
Also, you may just wait: Panasonic DC-S5 II is supported since March, 2023; We'll release it in public snapshot according to our release schedule: https://www.libraw.org/#updatepolicy
We're working on it but there is no estimated completion date.
HE/HE* will definitely NOT be supported in the next public snapshot.
Pages