public static Bitmap createFromColorChannels(byte[] channels, int width, int height) {
int[] color = new int[channels.length / 3];
for (int i = 0; i < color.length; i++) {
color[i] = Color.rgb(channels[i], channels[i + 1], channels[i + 2]);
}
...
Also, your patch will read additional byte via f = getc(ifp);
I do not see any attempt to add this byte back to the input stream. Most likely, your code does not decode correct data right.
I have the same need as the OP, so I figured I'd comment rather than make a whole new post. How can I get a debayered RGB bitmap out of a RAW nef file?
EDIT: nevermind, I have an unpublished post with my question in it.
Okay, I'll upload another one soon. However how does LibRaw handle these cases? I mean if the tag is absent and I try to access its contents what is the expected result? Or better yet, is there a good way of checking it?
I sent a project to your email. Please note that checkMetadataValue is written so, that if the value is absent then it should return "Missing", also note that even though it extracts altitude, after failing to extract longref it stops and does nothing with the rest of the file.
Also, I am concerned about other fields in GPS, for instance longitude returns 0s no matter what image I try.
I can't find a way to attach a file, but here is a sample code that fails. I an extracting a lot of information so I am putting everything into a stream.
I can reverse engineer Adobe code, but I still need to know what the cam_xyz matrix exactly converts to. It converts camera space to XYZ. But is that with respect to a reference white or not? If so, which? Hopefully this question makes sense.
For WB multipliers conversion to/from 'color temperature' please look into Adobe DNG SDK source (or into RawTherapee source), it it shorter way than translating Adobe code into english in this forum thread.
The following code creates 32 bit ARGB:
dcraw_make_mem_image() creates 24-bit RGB, not 32-bit ARGB
Ok.
The FreeImage source code contains the old version without the fix (0.17.a1). I will include only the fix in our code.
Thanks.
Also, your patch will read additional byte via f = getc(ifp);
I do not see any attempt to add this byte back to the input stream. Most likely, your code does not decode correct data right.
Actual LibRaw already contains this check and additional loop count check
No exact timeframe, most likely 'later this year'.
'Release Plan' should be response to user's feature requests, but we do not see these requests.
...and a release plan will be a plus for this project...
Libraw internal pixel format is always 16-bit unsigned integer.
16->8 bit conversion (and gamma correction) is performed on make_mem_image() stage.
Could you please provide raw file sample to check?
Use simple_dcraw.cpp sample as an example code
I have the same need as the OP, so I figured I'd comment rather than make a whole new post. How can I get a debayered RGB bitmap out of a RAW nef file?
EDIT: nevermind, I have an unpublished post with my question in it.
imgdata.other.parsed_gps.gpsparsed is non-zero if gps data has parsed.
Okay, I'll upload another one soon. However how does LibRaw handle these cases? I mean if the tag is absent and I try to access its contents what is the expected result? Or better yet, is there a good way of checking it?
I do not see EXIF GPS tags in this file.
https://drive.google.com/drive/u/1/folders/0BwHd5YdfBGISbGw3RFVCVkc0eDA
BTW no message(s) in inbox yet.....
Please use some file sharing service because E-mail providers/servers may limit message size
The Raw image i used was also in that project, near the sln file.
The only things I need is the RAW file to see is LibRaw correctly parses GPS fiield or not.
I sent a project to your email. Please note that checkMetadataValue is written so, that if the value is absent then it should return "Missing", also note that even though it extracts altitude, after failing to extract longref it stops and does nothing with the rest of the file.
Also, I am concerned about other fields in GPS, for instance longitude returns 0s no matter what image I try.
Please upload the file somewhere (Dropbox, googledrive, etc) and
- either post a link here
- or send it directly to lexa@libraw.org
altref possible values are 0 or 1: http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/GPS.html
I can't find a way to attach a file, but here is a sample code that fails. I an extracting a lot of information so I am putting everything into a stream.
#include "libraw/libraw.h"
#include < iostream >
#include < sstream >
void getGPSinfo(string fileName)
{
LibRaw proc;
FILE *pf;
ostringstream stream;
proc.open_file(fileName);
libraw_gps_info_t GPSInfo = proc.imgdata.other.parsed_gps;
stream << "\"GPSAltitudeRef\"" << "->" << to_string(GPSInfo.altref);
pf = fopen("somePath\\debug.txt", "w");
fprintf(pf, stream.str().c_str());
fclose(pf);
proc.recycle();
}
Could you please share sample file for analyze?
imgdata.color.cam_xyz[] is exactly the same as Adobe DNG ColorMatrix2. It converts from XYZ to camera space.
I can reverse engineer Adobe code, but I still need to know what the cam_xyz matrix exactly converts to. It converts camera space to XYZ. But is that with respect to a reference white or not? If so, which? Hopefully this question makes sense.
cam_mul are in 'camera color space'.
For WB multipliers conversion to/from 'color temperature' please look into Adobe DNG SDK source (or into RawTherapee source), it it shorter way than translating Adobe code into english in this forum thread.
Pages