OBS User unknown 2007-08-03 20:00:42 +00:00 committed by Git OBS Bridge
parent 46cee82c49
commit 2710f23328
6 changed files with 857 additions and 458 deletions

499
README
View File

@ -3,9 +3,11 @@ http://www.cybercom.net/~dcoffin/dcraw/:
[1]Back to Dave Coffin's Home Page [1]Back to Dave Coffin's Home Page
[2]en Esperanto [2]en Esperanto
[3]em Portugues
[4]na russkom
Welcome! If you are wondering how to connect your digital camera and Welcome! If you are wondering how to connect your digital camera and
download images to a Linux PC, go to the [3]gPhoto homepage. My download images to a Linux PC, go to the [5]gPhoto homepage. My
software is for processing those images after downloading them. software is for processing those images after downloading them.
If you're downloading JPEG files, you don't need my software at all. If you're downloading JPEG files, you don't need my software at all.
@ -30,14 +32,14 @@ http://www.cybercom.net/~dcoffin/dcraw/:
decodes any raw image from any digital camera on any computer running decodes any raw image from any digital camera on any computer running
any operating system. any operating system.
That program is called [4]dcraw (pronounced "dee-see-raw"), and it's That program is called [6]dcraw (pronounced "dee-see-raw"), and it's
become a standard tool within and without the Open Source world. It's become a standard tool within and without the Open Source world. It's
small (about 7000 lines), portable (standard C libraries only), free small (about 8000 lines), portable (standard C libraries only), free
(both "gratis" and "libre"), and when used skillfully, produces (both "gratis" and "libre"), and when used skillfully, produces
[5]better quality [6]output than the tools provided by the camera [7]better quality [8]output than the tools provided by the camera
vendor. vendor.
[7]Here's my resume. I do freelance consulting related to dcraw, and [9]Here's my resume. I do freelance consulting related to dcraw, and
I'm also available for full-time software work in the Northeast USA. I'm also available for full-time software work in the Northeast USA.
I can be reached by sending e-mail to cybercom dot net with the I can be reached by sending e-mail to cybercom dot net with the
@ -45,11 +47,11 @@ http://www.cybercom.net/~dcoffin/dcraw/:
News and Interviews News and Interviews
[8]Essay for Digital Outback Photo, 25 April 2003 [10]Essay for Digital Outback Photo, 25 April 2003
[9]Article in News.com, 21 April 2005 [11]Article in News.com, 21 April 2005
[10]Interview with Digital Photography Review, 27 April 2005 [12]Interview with Digital Photography Review, 27 April 2005
[11]Interview with Thorsten Schnebeck, 10 June 2006 [13]Interview with Thorsten Schnebeck, 10 June 2006
[12]Interview with Ladinamo, 16 June 2006 [14]Interview with Ladinamo, 16 June 2006
My Code My Code
@ -62,53 +64,54 @@ http://www.cybercom.net/~dcoffin/dcraw/:
"fuji_green", "fujiturn", and "fujiturn16". My shell scripts are "fuji_green", "fujiturn", and "fujiturn16". My shell scripts are
dangerous and should only be installed in a "doc" directory without dangerous and should only be installed in a "doc" directory without
execute permission. execute permission.
* [13]dcraw.c -- decodes raw photos, extracts thumbnails, and * [15]dcraw.c -- decodes raw photos, extracts thumbnails, and
displays metadata displays metadata
Supports 260 cameras at last count. Compile with "gcc -o dcraw -O4 Supports 268 cameras at last count. Compile with "gcc -o dcraw -O4
dcraw.c -lm -ljpeg -llcms" or "gcc -o dcraw -O4 dcraw.c -lm dcraw.c -lm -ljpeg -llcms" or "gcc -o dcraw -O4 dcraw.c -lm
-DNO_JPEG -DNO_LCMS". Run with no arguments to see a usage message. -DNO_JPEG -DNO_LCMS". Run with no arguments to see a usage message.
Don't complain that 16-bit output is too dark -- read the FAQ! Don't complain that 16-bit output is too dark -- read the [16]FAQ!
* [14]UNIX manpage for dcraw * [17]UNIX manpage for dcraw
This is dcraw's official user documentation, updated in lockstep This is dcraw's official user documentation, updated in lockstep
with the source code. with the source code.
* [15]rawphoto.c -- basic plugin for GIMP 1.2 & 2.0 * [18]rawphoto.c -- basic plugin for GIMP 1.2 & 2.0
After installing "dcraw", do "gimptool --install rawphoto.c". My After installing "dcraw", do "gimptool --install rawphoto.c". My
plugin provides a simple dialog box for loading raw files into the plugin provides a simple dialog box for loading raw files into the
Gimp. [16]Udi Fuchs and [17]Joseph Heled have written much nicer Gimp. [19]Udi Fuchs and [20]Joseph Heled have written much nicer
plugins, with live preview, histograms, and color curves. plugins, with live preview, histograms, and color curves.
* [18].badpixels -- my camera's "hot pixels" * [21].badpixels -- my camera's "hot pixels"
This file tells dcraw which pixels have died and when, so that it This file tells dcraw which pixels have died and when, so that it
can interpolate around them. can interpolate around them.
* [19]dcraw.c,v -- complete unabridged RCS file * [22]dcraw.c,v -- complete unabridged RCS file
This file contains the entire history of dcraw.c since its This file contains the entire history of dcraw.c since its
conception on February 23, 1997. If you don't have the RCS toolkit, conception on February 23, 1997. If you don't have the RCS toolkit,
[20]download it here. [23]download it here.
* [21]parse.c -- read image data structures * [24]parse.c -- read image data structures
This program displays CIFF and TIFF data structures in a very This program displays CIFF and TIFF data structures in a very
cryptic format. cryptic format.
* [22]clean_crw.c -- clean Canon CRW files * [25]clean_crw.c -- clean Canon CRW files
Recovered or undeleted CRW files often have junk appended to them Recovered or undeleted CRW files often have junk appended to them
that makes them unreadable. This program safely cleans CRW files. that makes them unreadable. This program safely cleans CRW files.
* [23]fujiturn.c -- rotate Fuji Super CCD images * [26]fujiturn.c -- rotate Fuji Super CCD images
An alternative to dcraw's built-in Fuji rotation. An alternative to dcraw's built-in Fuji rotation.
* [24]fuji_green.c -- convert Fuji green pixels to PGM * [27]fuji_green.c -- convert Fuji green pixels to PGM
A side benefit of the Fuji Super CCD design is that its green A side benefit of the Fuji Super CCD design is that its green
pixels make nice greyscale images. pixels make nice greyscale images.
For hackers only: For hackers only:
* [25]decompress.c is a simple reference decompressor for CRW files. * [28]decompress.c is a simple reference decompressor for CRW files.
* [26]sony_clear.c decrypts SRF files from the Sony DSC-F828. * [29]sony_clear.c decrypts SRF files from the Sony DSC-F828.
Internationalization Internationalization
To install dcraw with support for non-English languages, download the To install dcraw with support for non-English languages, download the
latest tarball [27]from this directory and run the "install" script. latest tarball [30]from this directory and run the "install" script.
The currently supported languages are Esperanto, Russian, French, The currently supported languages are [31]Esperanto, [32]Russian,
Italian, German, Portuguese, Spanish, Dutch, Polish, and Chinese (both [33]French, [34]Italian, [35]German, [36]Portuguese, [37]Spanish,
Traditional and Simplified). [38]Dutch, [39]Polish, [40]Hungarian, and Chinese (both [41]Traditional
and [42]Simplified).
To add another language, send me translations of [28]this manpage and To add another language, send me translations of [43]this manpage and
[29]this message table in UTF-8 encoding. Translate only from my [44]this message table in UTF-8 encoding. Translate only from my
original English and Esperanto texts -- other languages may contain original English and Esperanto texts -- other languages may contain
factual errors invisible to me. factual errors invisible to me.
@ -139,102 +142,106 @@ http://www.cybercom.net/~dcoffin/dcraw/:
digital cameras in their applications. They can call dcraw from a digital cameras in their applications. They can call dcraw from a
graphical interface, paste pieces of dcraw.c into their code, or just graphical interface, paste pieces of dcraw.c into their code, or just
use dcraw.c as the documentation that camera makers refuse to provide: use dcraw.c as the documentation that camera makers refuse to provide:
* [30]ACDSee * [45]ACDSee
* [31]Adobe Photoshop * [46]Adobe Photoshop
* [32]BR's PhotoArchiver by Baard Riiber * [47]BR's PhotoArchiver by Baard Riiber
* [33]BreezeBrowser by Chris Breeze * [48]BreezeBrowser by Chris Breeze
* [34]Conceiva Lightbox * [49]Conceiva Lightbox
* [35]cPicture by Juergen Eidt * [50]cPicture by Juergen Eidt
* [36]Cumulus by Canto * [51]Cumulus by Canto
* [37]dcRAW-X by Bryan Chang * [52]dcRAW-X by Bryan Chang
* [38]DCRawUI by Sune Trudslev * [53]DCRawUI by Sune Trudslev
* [39]Directory Opus Plugin by Leo Davidson(with C++ source code) * [54]Directory Opus Plugin by Leo Davidson(with C++ source code)
* [40]DeepSkyStacker by Luc Coiffier * [55]DeepSkyStacker by Luc Coiffier
* [41]dpMagic by Mikhail Stolpner * [56]dpMagic by Mikhail Stolpner
* [42]EasyRaw Studio * [57]EasyRaw Studio
* [43]GraphicConverter by Thorsten Lemke * [58]GraphicConverter by Thorsten Lemke
* [44]GVBox from JCO Consulting * [59]GVBox from JCO Consulting
* [45]ImageLab from Aragon System * [60]ImageLab from Aragon System
* [46]IrfanView by Irfan Skiljan * [61]IrfanView by Irfan Skiljan
* [47]IRIS image processor for astronomers * [62]IRIS image processor for astronomers
* [48]KA Photoservice * [63]KA Photoservice
* [49]Lightbox by Josh Anon * [64]Lightbox by Josh Anon
* [50]LightZone by Anton Kast * [65]LightZone by Anton Kast
* [51]Mixpo by Mixpo Portfolio Broadcasting Inc. * [66]MediaRECOVER File Recovery Software
* [52]Photo Companion by Jeff Moore * [67]Mixpo by Mixpo Portfolio Broadcasting Inc.
* [53]Photo Jockey by Davie Lee Reed who also wrote a [54]dcraw * [68]Photo Companion by Jeff Moore
* [69]Photo Jockey by Davie Lee Reed who also wrote a [70]dcraw
interface for Delphi programmers. interface for Delphi programmers.
* [55]Photo Organizer by Balint Kis * [71]Photo Organizer by Balint Kis
* [56]PhotoReviewer by Ben Haller * [72]PhotoRescue from DataRescue
* [57]Photovault by Harri Kaimio * [73]PhotoReviewer by Ben Haller
* [58]Picasa from Google * [74]Photovault by Harri Kaimio
* [59]Picture Arena by Felix Schwarz * [75]Picasa from Google
* [60]PixInsight by Pleiades Software * [76]Picture Arena by Felix Schwarz
* [61]PiXPO by PiXPO Inc. * [77]PixInsight by Pleiades Software
* [62]PolyView by Polybytes * [78]PiXPO by PiXPO Inc.
* [63]PowerShovel-II by Luc Minnebo * [79]PolyView by Polybytes
* [64]RAW Developer by Iridient Digital * [80]PowerShovel-II by Luc Minnebo
* [65]Raw Magick * [81]RAW Developer by Iridient Digital
* [66]RawConvert by Jason Swain * [82]Raw Magick
* [67]RawDrop by Frank Siegert * [83]RawConvert by Jason Swain
* [68]RawShooter from pixmantec * [84]RawDrop by Frank Siegert
* [69]RawView by Jari Savolainen * [85]RawShooter from pixmantec
* [70]Serif PhotoPlus, PanoramaPlus, and AlbumPlus * [86]RawView by Jari Savolainen
* [71]SharpRaw by Duane DeSieno * [87]Serif PhotoPlus, PanoramaPlus, and AlbumPlus
* [72]SilverFast DCPro by LaserSoft Imaging * [88]SharpRaw by Duane DeSieno
* [73]StudioLine Photo by H&M Software * [89]SilverFast DCPro by LaserSoft Imaging
* [74]ViewIt by Zdzislaw Losvik * [90]StudioLine Photo by H&M Software
* [75]Viewer n5 by Dmitry Fedorov * [91]ViewIt by Zdzislaw Losvik
* [76]VueScan by Ed Hamrick * [92]Viewer n5 by Dmitry Fedorov
* [93]VueScan by Ed Hamrick
* [94]Xara Xtreme Pro
Frequently Asked Questions Frequently Asked Questions
I don't have a C compiler. Could you send me an executable? I don't have a C compiler. Could you send me an executable?
No, but Francisco Montilla provides Mac OS and Windows No, but Francisco Montilla provides Mac OS and Windows
executables [77]on his website. And Benjamin Lebsanft has executables [95]on his website. And Benjamin Lebsanft has
volunteered to maintain [78]Windows executables optimized for volunteered to maintain [96]Windows executables optimized for
specific CPUs. specific CPUs. Dcraw has also been ported to [97]Amiga,
[98]MorphOS, [99]BeOS, [100]OS/2, and [101]RISC OS.
If you're familiar with the DOS command line but don't know C, If you're familiar with the DOS command line but don't know C,
you can install this [79]free C compiler for Windows and compile you can install this [102]free C compiler for Windows and
dcraw.c quite easily. compile dcraw.c quite easily.
Why does dcraw say "Out of memory" in Windows Vista? Why does dcraw say "Out of memory" in Windows Vista?
This is an arbitrary limitation of Windows Vista that will be This is an arbitrary limitation of Windows Vista that will be
fixed in Service Pack 1. Thomas Nicely (of Pentium FDIV fame) fixed in Service Pack 1. Thomas Nicely (of Pentium FDIV fame)
has a [80]page describing the problem. At the moment, the only has a [103]page describing the problem. At the moment, the only
workaround is to build dcraw.exe with a Microsoft compiler workaround is to build dcraw.exe with a Microsoft compiler
instead of a GNU compiler. instead of a GNU compiler.
How can I read the EXIF data (shutter speed, aperture, etc.)? How can I read the EXIF data (shutter speed, aperture, etc.)?
[81]Phil Harvey's ExifTool provides a unified Perl-based EXIF [104]Phil Harvey's ExifTool provides a unified Perl-based EXIF
reader (and editor!) for all cameras and file formats. "dcraw -i reader (and editor!) for all cameras and file formats. "dcraw -i
-v" is much faster, but provides less information. -v" is much faster, but provides less information.
How can I read NEF files from Nikon scanners? How can I read NEF files from Nikon scanners?
Dcraw only supports cameras. Try [82]this simple program for Dcraw only supports cameras. Try [105]this simple program for
scanners. scanners.
How can I read Nikon Dust Off images (NDF files)? How can I read Nikon Dust Off images (NDF files)?
[83]Use this program. [106]Use this program.
Do you have any specifications describing raw photo formats? Do you have any specifications describing raw photo formats?
Yes, but they tend to omit important details, like how to Yes, but they tend to omit important details, like how to
decompress the raw image or decrypt private metadata. See the decompress the raw image or decrypt private metadata. See the
[84]TIFF spec, the [85]TIFF/EP spec, the [86]Adobe DNG spec, the [107]TIFF spec, the [108]TIFF/EP spec, the [109]Adobe DNG spec,
[87]CIFF (CRW) spec, and the [88]X3F spec. the [110]CIFF (CRW) spec, and the [111]X3F spec.
Where can I get an assortment of raw photos to test my software? Where can I get an assortment of raw photos to test my software?
[89]This website is a good place to exchange sample raw photos. Try [112]raw.fotosite.pl, [113]www.rawsamples.ch, and [114]Glass
For the complete dcraw test suite (every camera supported by Lantern RAWpository. For the complete dcraw test suite (every
dcraw), I sell a 2-DVD set for $600 and web-based updates for camera supported by dcraw), I sell a 2-DVD set for $600 and
$300/year. web-based updates for $300/year.
I'm designing a digital camera. How do I convert its raw photos into I'm designing a digital camera. How do I convert its raw photos into
something that dcraw and Adobe Photoshop can open? something that dcraw and Adobe Photoshop can open?
Download [90]LibTIFF v3.8.2 and apply [91]this patch. Then use Download [115]LibTIFF v3.8.2 and apply [116]this patch. Then use
[92]this C program as a template for converting your photos to [117]this C program as a template for converting your photos to
valid [93]Adobe DNG files. valid [118]Adobe DNG files.
Why are dcraw output images larger than camera JPEGs? Why are dcraw output images larger than camera JPEGs?
Any algorithm that combines each pixel with its neighbors is Any algorithm that combines each pixel with its neighbors is
@ -256,11 +263,11 @@ http://www.cybercom.net/~dcoffin/dcraw/:
Why is 16-bit output dark / unreadable? Why is 16-bit output dark / unreadable?
If you want pretty pictures straight out of dcraw, stay with If you want pretty pictures straight out of dcraw, stay with
8-bit output. 16-bit linear output is the best raw material for 8-bit output. 16-bit linear output is the best raw material for
professional image editors such as [94]Photoshop and professional image editors such as [119]Photoshop and
[95]CinePaint, but it's no good for most image viewers. [120]CinePaint, but it's no good for most image viewers.
What does the "-f" (four color RGB) option do? What does the "-f" (four color RGB) option do?
If you see patterns like [96]this or [97]this in your output If you see patterns like [121]this or [122]this in your output
images, first try "dcraw -a". If these patterns persist, use images, first try "dcraw -a". If these patterns persist, use
"dcraw -f" to get rid of them. "dcraw -f" to get rid of them.
@ -274,8 +281,9 @@ dcraw -c crw_0001.crw | pnmtopng > crw_0001.png
dcraw -c crw_0001.crw | ppmtobmp > crw_0001.bmp dcraw -c crw_0001.crw | ppmtobmp > crw_0001.bmp
dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
I used the [98]Netpbm toolkit in these examples. [99]ImageMagick I used the [123]Netpbm toolkit in these examples.
also does command-line format conversions. Both are free. [124]ImageMagick also does command-line format conversions. Both
are free.
Why don't you implement dcraw as a library? Why don't you implement dcraw as a library?
I have decided that dcraw shall be a command-line program I have decided that dcraw shall be a command-line program
@ -288,7 +296,7 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
formats that change every day. formats that change every day.
There's a simpler way to make dcraw modular and thread-safe: Run There's a simpler way to make dcraw modular and thread-safe: Run
it as a separate process. Eric Raymond [100]explains this it as a separate process. Eric Raymond [125]explains this
technique here. technique here.
Why are there false colors along edges within the image? Why are there false colors along edges within the image?
@ -300,27 +308,27 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
2. Reconstruct the original three-color image as best you can 2. Reconstruct the original three-color image as best you can
from the remaining one color per pixel. from the remaining one color per pixel.
Dcraw currently gives a choice of three methods: Bilinear, Dcraw currently gives a choice of four methods: Bilinear,
Variable Number of Gradients (VNG), and Adaptive Variable Number of Gradients (VNG), Patterned Pixel Grouping
Homogeneity-Directed (AHD). (PPG), and Adaptive Homogeneity-Directed (AHD).
[101]The Foveon X3 Capture chip requires a different kind of [126]The Foveon X3 Capture chip requires a different kind of
interpolation. Unlike CCD arrays, it captures three colors at interpolation. Unlike CCD arrays, it captures three colors at
every pixel location. But the colors are not well separated, so every pixel location. But the colors are not well separated, so
the raw data looks very gray. Much processing is needed to the raw data looks very gray. Much processing is needed to
enhance color while suppressing noise. enhance color while suppressing noise.
How do I get my camera to take raw photos? How do I get my camera to take raw photos?
For the Canon PowerShot A610, A620, and others, [102]go here. For the Canon PowerShot A610, A620, and others, [127]go here.
For some Nikon Coolpix cameras, you need to enable a For some Nikon Coolpix cameras, you need to enable a
[103]special "DIAG RAW" mode. [128]special "DIAG RAW" mode.
For Casio cameras, see [104]Maurice Delaney's website or read For Casio cameras, see [129]Maurice Delaney's website or read
[105]this discussion on dpreview. [130]this discussion on dpreview.
For the Minolta DiMAGE G400, G500, G530, or G600, go [106]here For the Minolta DiMAGE G400, G500, G530, or G600, go [131]here
(in Russian) or [107]here (in English). (in Russian) or [132]here (in English).
For the Minolta DiMAGE Z2 and Nikon Coolpix 2100/3100/3700, For the Minolta DiMAGE Z2 and Nikon Coolpix 2100/3100/3700,
[108]go here. [133]go here.
For SMaL cameras, see the [109]camerahacking Forum. For SMaL cameras, see the [134]camerahacking Forum.
For other cameras, refer to the User's Manual. For other cameras, refer to the User's Manual.
@ -328,7 +336,7 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
Most likely, yes. If your camera is not on the list below, try Most likely, yes. If your camera is not on the list below, try
dcraw anyway. If it doesn't work, post a raw image to a website dcraw anyway. If it doesn't work, post a raw image to a website
and e-mail me the URL. If you don't have a website, use and e-mail me the URL. If you don't have a website, use
[110]Dropload or [111]YouSendIt. [135]Dropload or [136]YouSendIt.
Ideally, your sample image should show a standard white card or Ideally, your sample image should show a standard white card or
color chart in direct sunlight, with other colors in the color chart in direct sunlight, with other colors in the
@ -351,6 +359,7 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
* Canon PowerShot A620 * Canon PowerShot A620
* Canon PowerShot A630 * Canon PowerShot A630
* Canon PowerShot A640 * Canon PowerShot A640
* Canon PowerShot A710 IS
* Canon PowerShot Pro70 * Canon PowerShot Pro70
* Canon PowerShot Pro90 IS * Canon PowerShot Pro90 IS
* Canon PowerShot G1 * Canon PowerShot G1
@ -418,15 +427,16 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
* Fuji FinePix S6000fd * Fuji FinePix S6000fd
* Fuji FinePix S7000 * Fuji FinePix S7000
* Fuji FinePix S9000/S9500 * Fuji FinePix S9000/S9500
* Hasselblad CFV
* Imacon Ixpress 16-megapixel * Imacon Ixpress 16-megapixel
* Imacon Ixpress 22-megapixel * Imacon Ixpress 22-megapixel
* Imacon Ixpress 39-megapixel * Imacon Ixpress 39-megapixel
* ISG 2020x1520 * ISG 2020x1520
* Kodak DC20 (see [112]Oliver Hartman's page) * Kodak DC20 (see [137]Oliver Hartman's page)
* Kodak DC25 (see [113]Jun-ichiro Itoh's page) * Kodak DC25 (see [138]Jun-ichiro Itoh's page)
* Kodak DC40 * Kodak DC40
* Kodak DC50 * Kodak DC50
* Kodak DC120 (also try [114]kdc2tiff) * Kodak DC120 (also try [139]kdc2tiff)
* Kodak DCS200 * Kodak DCS200
* Kodak DCS315C * Kodak DCS315C
* Kodak DCS330C * Kodak DCS330C
@ -453,6 +463,7 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
* Kodak DCS Pro 14nx * Kodak DCS Pro 14nx
* Kodak DCS Pro SLR/c * Kodak DCS Pro SLR/c
* Kodak DCS Pro SLR/n * Kodak DCS Pro SLR/n
* Kodak C330
* Kodak P850 * Kodak P850
* Kodak P880 * Kodak P880
* Kodak KAI-0340 * Kodak KAI-0340
@ -460,8 +471,10 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
* Konica KD-510Z * Konica KD-510Z
* Leaf Aptus 17 * Leaf Aptus 17
* Leaf Aptus 22 * Leaf Aptus 22
* Leaf Aptus 54S
* Leaf Aptus 65 * Leaf Aptus 65
* Leaf Aptus 75 * Leaf Aptus 75
* Leaf Aptus 75S
* Leaf Cantare * Leaf Cantare
* Leaf CatchLight * Leaf CatchLight
* Leaf CMost * Leaf CMost
@ -500,7 +513,9 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
* Nikon D2H * Nikon D2H
* Nikon D2Hs * Nikon D2Hs
* Nikon D2X * Nikon D2X
* Nikon D2Xs
* Nikon D40 * Nikon D40
* Nikon D40X
* Nikon D50 * Nikon D50
* Nikon D70 * Nikon D70
* Nikon D70s * Nikon D70s
@ -542,6 +557,7 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
* Olympus E-400 * Olympus E-400
* Olympus E-410 * Olympus E-410
* Olympus E-500 * Olympus E-500
* Olympus E-510
* Olympus SP310 * Olympus SP310
* Olympus SP320 * Olympus SP320
* Olympus SP350 * Olympus SP350
@ -603,115 +619,140 @@ References
1. http://www.cybercom.net/~dcoffin/ 1. http://www.cybercom.net/~dcoffin/
2. http://www.cybercom.net/~dcoffin/dcraw/index_eo.html 2. http://www.cybercom.net/~dcoffin/dcraw/index_eo.html
3. http://gphoto.sourceforge.net/ 3. http://www.cybercom.net/~dcoffin/dcraw/index_pt.html
4. http://www.cybercom.net/~dcoffin/dcraw/dcraw.c 4. http://www.cybercom.net/~dcoffin/dcraw/index_ru.html
5. http://www.insflug.org/raw/ 5. http://gphoto.sourceforge.net/
6. http://www.aim-dtp.net/aim/digicam/dcraw/ 6. http://www.cybercom.net/~dcoffin/dcraw/dcraw.c
7. http://www.cybercom.net/~dcoffin/resume.html 7. http://www.insflug.org/raw/
8. http://www.outbackphoto.com/artofraw/raw_07/essay.html 8. http://www.aim-dtp.net/aim/digicam/dcraw/
9. http://news.com.com/Nikons+photo+encryption+reported+broken/2100-1030_3-5679848.html 9. http://www.cybercom.net/~dcoffin/resume.html
10. http://www.dpreview.com/news/0504/05042701davecoffininterview.asp 10. http://www.outbackphoto.com/artofraw/raw_07/essay.html
11. http://www.schnebeck.de/interview-with-dave-coffin-creator-of-dcraw 11. http://news.com.com/Nikons+photo+encryption+reported+broken/2100-1030_3-5679848.html
12. http://www.ladinamo.org/english/raw-format-the-captive-photo.php 12. http://www.dpreview.com/news/0504/05042701davecoffininterview.asp
13. http://www.cybercom.net/~dcoffin/dcraw/dcraw.c 13. http://www.schnebeck.de/interview-with-dave-coffin-creator-of-dcraw
14. http://www.cybercom.net/~dcoffin/dcraw/dcraw.1.html 14. http://www.ladinamo.org/english/raw-format-the-captive-photo.php
15. http://www.cybercom.net/~dcoffin/dcraw/rawphoto.c 15. http://www.cybercom.net/~dcoffin/dcraw/dcraw.c
16. http://ufraw.sourceforge.net/ 16. http://www.cybercom.net/~dcoffin/dcraw/#faq
17. http://pages.quicksilver.net.nz/pepe/ 17. http://www.cybercom.net/~dcoffin/dcraw/dcraw.1.html
18. http://www.cybercom.net/~dcoffin/dcraw/.badpixels 18. http://www.cybercom.net/~dcoffin/dcraw/rawphoto.c
19. http://www.cybercom.net/~dcoffin/dcraw/RCS/dcraw.c,v 19. http://ufraw.sourceforge.net/
20. http://www.cs.purdue.edu/homes/trinkle/RCS/ 20. http://pages.quicksilver.net.nz/pepe/
21. http://www.cybercom.net/~dcoffin/dcraw/parse.c 21. http://www.cybercom.net/~dcoffin/dcraw/.badpixels
22. http://www.cybercom.net/~dcoffin/dcraw/clean_crw.c 22. http://www.cybercom.net/~dcoffin/dcraw/RCS/dcraw.c,v
23. http://www.cybercom.net/~dcoffin/dcraw/fujiturn.c 23. http://www.cs.purdue.edu/homes/trinkle/RCS/
24. http://www.cybercom.net/~dcoffin/dcraw/fuji_green.c 24. http://www.cybercom.net/~dcoffin/dcraw/parse.c
25. http://www.cybercom.net/~dcoffin/dcraw/decompress.c 25. http://www.cybercom.net/~dcoffin/dcraw/clean_crw.c
26. http://www.cybercom.net/~dcoffin/dcraw/sony_clear.c 26. http://www.cybercom.net/~dcoffin/dcraw/fujiturn.c
27. http://www.cybercom.net/~dcoffin/dcraw/archive/ 27. http://www.cybercom.net/~dcoffin/dcraw/fuji_green.c
28. http://www.cybercom.net/~dcoffin/dcraw/dcraw.1 28. http://www.cybercom.net/~dcoffin/dcraw/decompress.c
29. http://www.cybercom.net/~dcoffin/dcraw/dcraw_eo.po 29. http://www.cybercom.net/~dcoffin/dcraw/sony_clear.c
30. http://www.acdsystems.com/ 30. http://www.cybercom.net/~dcoffin/dcraw/archive/
31. http://www.adobe.com/products/photoshop/cameraraw.html 31. http://www.cybercom.net/~dcoffin/dcraw/dcraw_eo.1.html
32. http://www.br-software.com/ 32. http://www.cybercom.net/~dcoffin/dcraw/dcraw_ru.1.html
33. http://www.breezesys.com/ 33. http://www.cybercom.net/~dcoffin/dcraw/dcraw_fr.1.html
34. http://www.conceiva.com/ 34. http://www.cybercom.net/~dcoffin/dcraw/dcraw_it.1.html
35. http://cpicture.net/en/t_raw.html 35. http://www.cybercom.net/~dcoffin/dcraw/dcraw_de.1.html
36. http://www.canto.com/ 36. http://www.cybercom.net/~dcoffin/dcraw/dcraw_pt.1.html
37. http://frostyplace.com/dcraw/ 37. http://www.cybercom.net/~dcoffin/dcraw/dcraw_es.1.html
38. http://www.tanis.dk/wiki/index.php/DCRawUI 38. http://www.cybercom.net/~dcoffin/dcraw/dcraw_nl.1.html
39. http://www.pretentiousname.com/jp2raw/ 39. http://www.cybercom.net/~dcoffin/dcraw/dcraw_pl.1.html
40. http://deepskystacker.free.fr/ 40. http://www.cybercom.net/~dcoffin/dcraw/dcraw_hu.1.html
41. http://www.dpmagic.com/ 41. http://www.cybercom.net/~dcoffin/dcraw/dcraw_zh_TW.1.html
42. http://www.easyraw.com/ 42. http://www.cybercom.net/~dcoffin/dcraw/dcraw_zh_CN.1.html
43. http://www.lemkesoft.com/ 43. http://www.cybercom.net/~dcoffin/dcraw/dcraw.1
44. http://jcoconsulting.com/index.asp?Section=GVOCX 44. http://www.cybercom.net/~dcoffin/dcraw/dcraw_eo.po
45. http://www.aragonsystem.com/ 45. http://www.acdsystems.com/
46. http://www.irfanview.com/ 46. http://www.adobe.com/products/photoshop/cameraraw.html
47. http://www.astrosurf.com/buil/us/iris/iris.htm 47. http://www.br-software.com/
48. http://www.kaorg.com/photoservice.asp 48. http://www.breezesys.com/
49. http://www.lightboxsoftware.com/ 49. http://www.conceiva.com/
50. http://sonic.net/~rat/lightcrafts/ 50. http://cpicture.net/en/t_raw.html
51. http://www.mixpo.com/ 51. http://www.canto.com/
52. http://www.wildcape.com/ 52. http://frostyplace.com/dcraw/
53. http://photojockey.com/ 53. http://www.tanis.dk/wiki/index.php/DCRawUI
54. http://smatters.com/dcraw/ 54. http://www.pretentiousname.com/jp2raw/
55. http://www.k-i-s.net/ 55. http://deepskystacker.free.fr/
56. http://www.sticksoftware.com/software/PhotoReviewer.html 56. http://www.dpmagic.com/
57. http://www.photovault.org/ 57. http://www.easyraw.com/
58. http://www.picasa.com/ 58. http://www.lemkesoft.com/
59. http://www.picturearena.com/ 59. http://jcoconsulting.com/index.asp?Section=GVOCX
60. http://pleiades-astrophoto.com/ 60. http://www.aragonsystem.com/
61. http://www.pixpo.com/ 61. http://www.irfanview.com/
62. http://www.polybytes.com/ 62. http://www.astrosurf.com/buil/us/iris/iris.htm
63. http://lens.liteserv.com/download/powershovel2.php 63. http://www.kaorg.com/photoservice.asp
64. http://www.iridientdigital.com/ 64. http://www.lightboxsoftware.com/
65. http://www.rawmagick.com/ 65. http://sonic.net/~rat/lightcrafts/
66. http://www.i-graph.com/ 66. http://www.mediarecover.com/
67. http://www.wizards.de/rawdrop 67. http://www.mixpo.com/
68. http://www.pixmantec.com/ 68. http://www.wildcape.com/
69. http://www.through-the-lens.net/ 69. http://photojockey.com/
70. http://www.serif.com/ 70. http://smatters.com/dcraw/
71. http://www.logicaldesigns.com/ 71. http://www.k-i-s.net/
72. http://www.silverfast.com/ 72. http://www.datarescue.com/photorescue/
73. http://www.studioline.net/ 73. http://www.sticksoftware.com/software/PhotoReviewer.html
74. http://www.hexcat.com/viewit/ 74. http://www.photovault.org/
75. http://www.dimin.net/software/viewer/ 75. http://www.picasa.com/
76. http://www.hamrick.com/ 76. http://www.picturearena.com/
77. http://www.insflug.org/raw/ 77. http://pleiades-astrophoto.com/
78. http://www.lebsanft.org/blog/index.php?cat=9 78. http://www.pixpo.com/
79. http://www.delorie.com/djgpp/ 79. http://www.polybytes.com/
80. http://www.trnicely.net/misc/vista.html 80. http://lens.liteserv.com/download/powershovel2.php
81. http://www.sno.phy.queensu.ca/~phil/exiftool/ 81. http://www.iridientdigital.com/
82. http://www.cybercom.net/~dcoffin/dcraw/scan.c 82. http://www.rawmagick.com/
83. http://www.cybercom.net/~dcoffin/dcraw/read_ndf.c 83. http://www.i-graph.com/
84. http://partners.adobe.com/asn/developer/PDFS/TN/TIFF6.pdf 84. http://www.wizards.de/rawdrop
85. http://www.map.tu.chiba-u.ac.jp/IEC/100/TA2/recdoc/N4378.pdf 85. http://www.pixmantec.com/
86. http://www.adobe.com/products/dng/pdfs/dng_spec.pdf 86. http://www.through-the-lens.net/
87. http://xyrion.org/ciff/ 87. http://www.serif.com/
88. http://www.x3f.info/technotes/FileDocs/X3F_Format.pdf 88. http://www.logicaldesigns.com/
89. http://raw.fotosite.pl/ 89. http://www.silverfast.com/
90. http://dl.maptools.org/dl/libtiff/tiff-3.8.2.tar.gz 90. http://www.studioline.net/
91. http://www.cybercom.net/~dcoffin/dcraw/libtiff.patch 91. http://www.hexcat.com/viewit/
92. http://www.cybercom.net/~dcoffin/dcraw/elphel_dng.c 92. http://www.dimin.net/software/viewer/
93. http://www.adobe.com/products/dng/main.html 93. http://www.hamrick.com/
94. http://www.adobe.com/products/photoshop/main.html 94. http://www.xara.com/products/xtreme/
95. http://cinepaint.sourceforge.net/ 95. http://www.insflug.org/raw/
96. http://www.cybercom.net/~dcoffin/dcraw/ahd_maze.png 96. http://www.lebsanft.org/blog/index.php?cat=9
97. http://www.cybercom.net/~dcoffin/dcraw/vng_grid.png 97. http://aminet.net/search?query=dcraw
98. http://netpbm.sourceforge.net/ 98. http://amis.flatrate.ru/dcraw/
99. http://www.imagemagick.org/ 99. http://www.pidcock.co.uk/beos/index.html
100. http://www.faqs.org/docs/artu/multiprogramchapter.html 100. http://hobbes.nmsu.edu/cgi-bin/h-search?key=dcraw
101. http://www.dpreview.com/news/0202/02021101foveonx3.asp 101. http://www.riscos.info/unix/indexes/graphics.html
102. http://digicanon.narod.ru/ 102. http://www.delorie.com/djgpp/
103. http://e2500.narod.ru/raw_format_e.htm 103. http://www.trnicely.net/misc/vista.html
104. http://www.inweb.ch/foto/rawformat.html 104. http://www.sno.phy.queensu.ca/~phil/exiftool/
105. http://forums.dpreview.com/forums/read.asp?forum=1015&message=4961779 105. http://www.cybercom.net/~dcoffin/dcraw/scan.c
106. http://myfototest.narod.ru/ 106. http://www.cybercom.net/~dcoffin/dcraw/read_ndf.c
107. http://forums.dpreview.com/forums/read.asp?forum=1024&message=11773287 107. http://partners.adobe.com/asn/developer/PDFS/TN/TIFF6.pdf
108. http://tester13.nm.ru/nikon/ 108. http://www.map.tu.chiba-u.ac.jp/IEC/100/TA2/recdoc/N4378.pdf
109. http://www.camerahacking.com/ 109. http://www.adobe.com/products/dng/pdfs/dng_spec.pdf
110. http://dropload.com/ 110. http://xyrion.org/ciff/
111. http://yousendit.com/ 111. http://www.x3f.info/technotes/FileDocs/X3F_Format.pdf
112. http://www.planet-interkom.de/oliver.hartmann/dc20secr.htm 112. http://raw.fotosite.pl/
113. http://www.itojun.org/diary/19961113/index.eng.html 113. http://www.rawsamples.ch/
114. http://kdc2tiff.sourceforge.net/ 114. http://www.glasslantern.com/RAWpository/
115. http://dl.maptools.org/dl/libtiff/tiff-3.8.2.tar.gz
116. http://www.cybercom.net/~dcoffin/dcraw/libtiff.patch
117. http://www.cybercom.net/~dcoffin/dcraw/elphel_dng.c
118. http://www.adobe.com/products/dng/main.html
119. http://www.adobe.com/products/photoshop/main.html
120. http://cinepaint.sourceforge.net/
121. http://www.cybercom.net/~dcoffin/dcraw/ahd_maze.png
122. http://www.cybercom.net/~dcoffin/dcraw/vng_grid.png
123. http://netpbm.sourceforge.net/
124. http://www.imagemagick.org/
125. http://www.faqs.org/docs/artu/multiprogramchapter.html
126. http://www.dpreview.com/news/0202/02021101foveonx3.asp
127. http://digicanon.narod.ru/
128. http://e2500.narod.ru/raw_format_e.htm
129. http://www.inweb.ch/foto/rawformat.html
130. http://forums.dpreview.com/forums/read.asp?forum=1015&message=4961779
131. http://myfototest.narod.ru/
132. http://forums.dpreview.com/forums/read.asp?forum=1024&message=11773287
133. http://tester13.nm.ru/nikon/
134. http://www.camerahacking.com/
135. http://dropload.com/
136. http://yousendit.com/
137. http://www.planet-interkom.de/oliver.hartmann/dc20secr.htm
138. http://www.itojun.org/diary/19961113/index.eng.html
139. http://kdc2tiff.sourceforge.net/

33
dcraw.1
View File

@ -9,7 +9,7 @@
.\" dcoffin a cybercom o net .\" dcoffin a cybercom o net
.\" http://www.cybercom.net/~dcoffin .\" http://www.cybercom.net/~dcoffin
.\" .\"
.TH dcraw 1 "May 3, 2007" .TH dcraw 1 "July 23, 2007"
.LO 1 .LO 1
.SH NAME .SH NAME
dcraw - command-line decoder for raw digital photos dcraw - command-line decoder for raw digital photos
@ -64,9 +64,12 @@ Output a half-size color image. Twice as fast as
.B -q 0 .B -q 0
Use high-speed, low-quality bilinear interpolation. Use high-speed, low-quality bilinear interpolation.
.TP .TP
.B -q 2 .B -q 1
Use Variable Number of Gradients (VNG) interpolation. Use Variable Number of Gradients (VNG) interpolation.
.TP .TP
.B -q 2
Use Patterned Pixel Grouping (PPG) interpolation.
.TP
.B -q 3 .B -q 3
Use Adaptive Homogeneity-Directed (AHD) interpolation. Use Adaptive Homogeneity-Directed (AHD) interpolation.
.TP .TP
@ -126,6 +129,21 @@ no white balance option
Use a fixed white balance based on a color chart illuminated Use a fixed white balance based on a color chart illuminated
with a standard D65 lamp. with a standard D65 lamp.
.TP .TP
.BR +M " or " -M
Use (or don't use) any color matrix from the camera metadata.
The default is
.B +M
if
.B -w
is set,
.B -M
otherwise.
This option only affects Olympus, Leaf, and Phase One cameras.
.TP
.B -C red_mag blue_mag
Enlarge the raw red and blue layers by the given factors,
typically 0.999 to 1.001, to correct chromatic aberration.
.TP
.B -H 0 .B -H 0
Clip all highlights to solid white (default). Clip all highlights to solid white (default).
.TP .TP
@ -186,8 +204,8 @@ applies the flip specified by the camera.
.B -t 0 .B -t 0
disables all flipping. disables all flipping.
.TP .TP
.B -s [0-99] .BR "-s [0..N-1]" " or " "-s all"
Select which raw image to decode if the file contains more than one. If a file contains N raw images, choose one or "all" to decode.
For example, Fuji\ Super\ CCD\ SR cameras generate a second image For example, Fuji\ Super\ CCD\ SR cameras generate a second image
underexposed four stops to show detail in the highlights. underexposed four stops to show detail in the highlights.
.TP .TP
@ -196,13 +214,6 @@ For Fuji\ Super\ CCD cameras, show the image tilted 45 degrees.
For cameras with non-square pixels, do not stretch the image to For cameras with non-square pixels, do not stretch the image to
its correct aspect ratio. In any case, this option guarantees its correct aspect ratio. In any case, this option guarantees
that each output pixel corresponds to one raw pixel. that each output pixel corresponds to one raw pixel.
.TP
.B ""
If they don't apply to your camera,
.B -s
and
.B -j
are silently ignored.
.SH FILES .SH FILES
.TP .TP
\:./.badpixels, ../.badpixels, ../../.badpixels, ... \:./.badpixels, ../.badpixels, ../../.badpixels, ...

658
dcraw.c

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,26 @@
-------------------------------------------------------------------
Fri Aug 3 17:16:18 CEST 2007 - postadal@suse.cz
- updated to RCS 1.390
* Added Patterned Pixel Grouping interpolation
* Support 3096x2103 mode for the Panasonic DMC-FZ8.
* Added "-C" option to correct chromatic aberration.
* Support the Hasselblad CFV, Kodak EasyShare C330, and Nikon D40X.
* Use a switch statement for Leica and Panasonic models.
* Output seven new TIFF tags, including ImageDescription and Artist.
* Generated color matrices for the Apple QuickTake and Phase One H 20.
* Copied new matrices from Adobe DNG Converter 4.1.
* Added "-M" option and improved PPG interpolation.
* Reports of corruption in 16-bit linear DNGs were false.
* Support all Lossless JPEG predictors.
* Reject 8-bit grayscale TIFFs.
* Decode raw CINE files, which may exceed 2GB.
* Error-check the "-s" option, and enable "-s all".
* Support camera WB for the Canon EOS-1D and EOS-1DS.
* Use full output range for "-H 2".
* Added color matrix for the Canon PowerShot A640.
* When they differ, use DateTimeOriginal instead of DateTime.
------------------------------------------------------------------- -------------------------------------------------------------------
Thu May 3 14:31:24 CEST 2007 - postadal@suse.cz Thu May 3 14:31:24 CEST 2007 - postadal@suse.cz

View File

@ -1,5 +1,5 @@
# #
# spec file for package dcraw (Version 1.379) # spec file for package dcraw (Version 1.390)
# #
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany. # Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine # This file and all modifications and additions to the pristine
@ -12,7 +12,7 @@
Name: dcraw Name: dcraw
BuildRequires: libjpeg-devel liblcms-devel BuildRequires: libjpeg-devel liblcms-devel
Version: 1.379 Version: 1.390
Release: 1 Release: 1
License: Any permissive License: Any permissive
Group: Productivity/Graphics/Convertors Group: Productivity/Graphics/Convertors
@ -76,6 +76,26 @@ rm -rf $RPM_BUILD_ROOT
%doc %_mandir/man*/* %doc %_mandir/man*/*
%changelog %changelog
* Fri Aug 03 2007 - postadal@suse.cz
- updated to RCS 1.390
* Added Patterned Pixel Grouping interpolation
* Support 3096x2103 mode for the Panasonic DMC-FZ8.
* Added "-C" option to correct chromatic aberration.
* Support the Hasselblad CFV, Kodak EasyShare C330, and Nikon D40X.
* Use a switch statement for Leica and Panasonic models.
* Output seven new TIFF tags, including ImageDescription and Artist.
* Generated color matrices for the Apple QuickTake and Phase One H 20.
* Copied new matrices from Adobe DNG Converter 4.1.
* Added "-M" option and improved PPG interpolation.
* Reports of corruption in 16-bit linear DNGs were false.
* Support all Lossless JPEG predictors.
* Reject 8-bit grayscale TIFFs.
* Decode raw CINE files, which may exceed 2GB.
* Error-check the "-s" option, and enable "-s all".
* Support camera WB for the Canon EOS-1D and EOS-1DS.
* Use full output range for "-H 2".
* Added color matrix for the Canon PowerShot A640.
* When they differ, use DateTimeOriginal instead of DateTime.
* Thu May 03 2007 - postadal@suse.cz * Thu May 03 2007 - postadal@suse.cz
- updated to RCS 1.379 - updated to RCS 1.379
* Offer blended highlights with the "-H 2" option * Offer blended highlights with the "-H 2" option

32
parse.c
View File

@ -5,8 +5,8 @@
This program displays raw metadata for all raw photo formats. This program displays raw metadata for all raw photo formats.
It is free for all uses. It is free for all uses.
$Revision: 1.64 $ $Revision: 1.65 $
$Date: 2007/04/29 04:00:59 $ $Date: 2007/05/15 06:16:12 $
*/ */
#include <stdio.h> #include <stdio.h>
@ -198,7 +198,7 @@ void nikon_decrypt (uchar ci, uchar cj, int tag, int i, int size, uchar *buf)
int parse_tiff_ifd (int base, int level); int parse_tiff_ifd (int base, int level);
void parse_makernote (base) void parse_makernote (int base, int level)
{ {
int offset=0, entries, tag, type, count, val, save; int offset=0, entries, tag, type, count, val, save;
unsigned serial=0, key=0; unsigned serial=0, key=0;
@ -246,10 +246,10 @@ void parse_makernote (base)
tag = get2(); tag = get2();
type = get2(); type = get2();
count= get4(); count= get4();
tiff_dump (base, tag, type, count, 2); tiff_dump (base, tag, type, count, level);
if (tag == 0x11 || type == 13) { if ((tag == 0x11 && !strncmp(make,"NIKON",5)) || type == 13) {
fseek (ifp, get4()+base, SEEK_SET); fseek (ifp, get4()+base, SEEK_SET);
parse_tiff_ifd (base, 3); parse_tiff_ifd (base, level+1);
} }
if (tag == 0x1d) if (tag == 0x1d)
while ((val = fgetc(ifp)) && val != EOF) while ((val = fgetc(ifp)) && val != EOF)
@ -263,12 +263,12 @@ void parse_makernote (base)
if (tag == 0xa7) if (tag == 0xa7)
key = fgetc(ifp)^fgetc(ifp)^fgetc(ifp)^fgetc(ifp); key = fgetc(ifp)^fgetc(ifp)^fgetc(ifp)^fgetc(ifp);
if (!strcmp (buf,"OLYMP") && tag >> 8 == 0x20) if (!strcmp (buf,"OLYMP") && tag >> 8 == 0x20)
parse_tiff_ifd (base, 3); parse_tiff_ifd (base, level+1);
if (tag == 0xe01) if (tag == 0xe01)
parse_nikon_capture_note (count); parse_nikon_capture_note (count);
if (tag == 0xb028) { if (tag == 0xb028) {
fseek (ifp, get4(), SEEK_SET); fseek (ifp, get4(), SEEK_SET);
parse_tiff_ifd (base, 3); parse_tiff_ifd (base, level+1);
} }
fseek (ifp, save+12, SEEK_SET); fseek (ifp, save+12, SEEK_SET);
} }
@ -281,7 +281,7 @@ void parse_makernote (base)
order = sorder; order = sorder;
} }
void parse_exif(int base) void parse_exif (int base, int level)
{ {
int entries, tag, type, count, save; int entries, tag, type, count, save;
@ -292,9 +292,9 @@ void parse_exif(int base)
tag = get2(); tag = get2();
type = get2(); type = get2();
count= get4(); count= get4();
tiff_dump (base, tag, type, count, 1); tiff_dump (base, tag, type, count, level);
if (tag == 0x927c) if (tag == 0x927c)
parse_makernote (base); parse_makernote (base, level+1);
fseek (ifp, save+12, SEEK_SET); fseek (ifp, save+12, SEEK_SET);
} }
} }
@ -366,7 +366,15 @@ int parse_tiff_ifd (int base, int level)
break; break;
case 34665: case 34665:
fseek (ifp, get4()+base, SEEK_SET); fseek (ifp, get4()+base, SEEK_SET);
parse_exif (base); parse_exif (base, level+1);
break;
case 50459:
i = order;
save2 = ftell(ifp);
order = get2();
fseek (ifp, save2 + (get2(),get4()), SEEK_SET);
parse_tiff_ifd (save2, level+1);
order = i;
break; break;
case 50706: case 50706:
is_dng = 1; is_dng = 1;