imgdata.image is 16 bit/linear
image->data is 16 bit (output_bps set to 16) and gamma corrected (as far as I could understand from your code)
Both imgdata.image and image.data are cropped (by imgdata.sizes top/left_margin and width/height), while imgdata.rawimage.* is not cropped.
Also, imgrata.rawimage contains unaltered raw values, black level not subtracted
I have now released the lib for general use under https://github.com/lanthale/librawfx. Thank you allot for your help with the compilation and accessing the raw RGB data.
Thank you for the hint. I managed now to get the data but actually the resulted image is greyscale and cut off but the root cause could be something different. I will post some code here after it works to help people using the java foreign memory api.
I have now tried the osx binary.zip file but I does not build at all (./configure was fine, but make had issues)
libraw-osx % make
cd . && /bin/sh automake --foreign
/usr/local/bin/automake: line 23: package: command not found
/usr/local/bin/automake: line 25: use: command not found
/usr/local/bin/automake: line 26: use: command not found
/usr/local/bin/automake: line 27: use: command not found
/usr/local/bin/automake: line 29: BEGIN: command not found
/usr/local/bin/automake: automake: line 31: syntax error near unexpected token `@INC,'
/usr/local/bin/automake: automake: line 31: ` unshift (@INC, '/usr/local/Cellar/automake/1.16.3/share/automake-1.16')'
make: *** [Makefile.in] Error 1
Then I tried a github checkout:
This time I could build with configure and make but the result is always under the lib folder "libraw.a" instat of the "libraw.dylib".
Then I tried the same on Ubuntu and ended up as well with "libraw.a".
(I've seen your another messages that lcms linking problem has solved).
LCMS is used only if
- custom camera profile is provided via imgdata.params
- output color profile is provided the same way (or output is sRGB)
- LCMS support is compiled in
LCMS support does nothing in normal processing pipeline (no custom color profile).
Hi. Thanks for putting this example. I tried the same with CR2 images. But the converted image (in OpenCV) is brighter than the original CR2 image. What should I do?
i tried your simple example in delphi xe2
using the libraw -wrapper
but the return of strings - like error messages
does not work - i just get "??????" for the error code -100009
Source:
err := libraw_open_file(handler, pchar('C:\temp\nikon\test.NEF'));
if (err <> LibRaw_errors.LIBRAW_SUCCESS) then
begin
WriteLn('Open: ' + IntToStr(integer(err)) + ': ' +
libraw_strerror(err));
as err is being filled correctly ( even though the file exists ? )
the output of libraw_strerror(err) is just "???????"
if i convert the console-app to a vcl-app the return looks more like japanes characters ...
so something goes wrong be reading the strings from the function
does someone have an idea ?
Could you please ask more specific question?
imgdata.image is 16 bit/linear
image->data is 16 bit (output_bps set to 16) and gamma corrected (as far as I could understand from your code)
Both imgdata.image and image.data are cropped (by imgdata.sizes top/left_margin and width/height), while imgdata.rawimage.* is not cropped.
Also, imgrata.rawimage contains unaltered raw values, black level not subtracted
I have now released the lib for general use under https://github.com/lanthale/librawfx. Thank you allot for your help with the compilation and accessing the raw RGB data.
In the next public snapshot.
When do you anticipate supporting Sony A1 RAW?
Thanks!
Thank you for the hint. I managed now to get the data but actually the resulted image is greyscale and cut off but the root cause could be something different. I will post some code here after it works to help people using the java foreign memory api.
&data[0] is pointer to start of data
Actual data is either 1 or 2 bytes per pixel (depends on imgdata.params.output_bps), no extra padding.
See mem-image.cpp sample, it covers all/most cases (1/3 channels, 8 and 16 bits)
Now I have reinstalled the whole toolchain and now it is working.
Thank you for the hint.
It looks like you have incomplete/broken autotools installation
I have now tried the osx binary.zip file but I does not build at all (./configure was fine, but make had issues)
libraw-osx % make
cd . && /bin/sh automake --foreign
/usr/local/bin/automake: line 23: package: command not found
/usr/local/bin/automake: line 25: use: command not found
/usr/local/bin/automake: line 26: use: command not found
/usr/local/bin/automake: line 27: use: command not found
/usr/local/bin/automake: line 29: BEGIN: command not found
/usr/local/bin/automake: automake: line 31: syntax error near unexpected token `@INC,'
/usr/local/bin/automake: automake: line 31: ` unshift (@INC, '/usr/local/Cellar/automake/1.16.3/share/automake-1.16')'
make: *** [Makefile.in] Error 1
Then I tried a github checkout:
This time I could build with configure and make but the result is always under the lib folder "libraw.a" instat of the "libraw.dylib".
Then I tried the same on Ubuntu and ended up as well with "libraw.a".
How can I get the system to build a shared lib ?
Thank you for the hint. I will download in the evening and will try to use the configure install option and report back how it worked out.
Also you can use LibRaw 0.20 (see Download section on this site) with pre-generated configure stuff.
> But I have to copy Makefile.dist to Makefile.in.
This will not work.
Please use autoreconf --install in full scale.
Yes but got some warnings. But I have to copy Makefile.dist to Makefile.in.
After that change configure runs to the end. Before it ends with error message that Makefile.in cannot be found.
Have you tried autoreconf, than configure?
The build environment I am using is OSX 10.15 with xcode and autoreconf installed.
For Windows I could build the dll. But under osx/linux I am getting only the static lib.
shared lib/dll/dylib creation is OS specific, it is not easy to create it via single change of Makefile.dist.
If your build environment(s) has GNU autotools/automake installed you could create ./configure script via
autoreconf --install
Than use ./configure && make.
For Windows, dll is created by using Makefile.msvc
Thanks Alex
I have it compiled and working. Works really well :-)
Andy
(I've seen your another messages that lcms linking problem has solved).
LCMS is used only if
- custom camera profile is provided via imgdata.params
- output color profile is provided the same way (or output is sRGB)
- LCMS support is compiled in
LCMS support does nothing in normal processing pipeline (no custom color profile).
What is 'original CR2 image' brightness?
Do you compare rendered RAW image with built-in JPEG preview?
Hi. Thanks for putting this example. I tried the same with CR2 images. But the converted image (in OpenCV) is brighter than the original CR2 image. What should I do?
Delphi XE2?
Do not use a 10 years old IDE. Upgrade to latest Delphi or use latest Lazarus IDE.
Hi ,
i tried your simple example in delphi xe2
using the libraw -wrapper
but the return of strings - like error messages
does not work - i just get "??????" for the error code -100009
Source:
err := libraw_open_file(handler, pchar('C:\temp\nikon\test.NEF'));
if (err <> LibRaw_errors.LIBRAW_SUCCESS) then
begin
WriteLn('Open: ' + IntToStr(integer(err)) + ': ' +
libraw_strerror(err));
as err is being filled correctly ( even though the file exists ? )
the output of libraw_strerror(err) is just "???????"
if i convert the console-app to a vcl-app the return looks more like japanes characters ...
so something goes wrong be reading the strings from the function
does someone have an idea ?
thx
Thank you for your feedback. I'm going to inquire about libtiff.
Regards
DNG format is really TIFF 6.0 + (lot of) extra tags for metadata.
Compressed DNG files are usually stored in tiles (each tile compressed separately)
If you want to read 'original' (i.e. compressed) data, libtiff is much better fit for this task.
Ah, got it. Thanks.
Pages