diff --git a/README b/README index 1206bac..ae63f4d 100644 --- a/README +++ b/README @@ -6,14 +6,11 @@ http://www.cybercom.net/~dcoffin/dcraw/: [3]em Portugues [4]na russkom - Note to dcraw users in Europe: - - I'll be speaking at [5]Libre Graphics Meeting 2008 in Wrocl/aw, Poland - between May 8 and May 11. I hope to see you there! + Thanks to everyone who came to [5]Wrocl/aw and [6]Barcelona this year! __________________________________________________________________ Welcome! If you are wondering how to connect your digital camera and - download images to a Linux PC, go to the [6]gPhoto homepage. My + download images to a Linux PC, go to the [7]gPhoto homepage. My software is for processing those images after downloading them. If you're downloading JPEG files, you don't need my software at all. @@ -38,14 +35,14 @@ http://www.cybercom.net/~dcoffin/dcraw/: decodes any raw image from any digital camera on any computer running any operating system. - That program is called [7]dcraw (pronounced "dee-see-raw"), and it's + That program is called [8]dcraw (pronounced "dee-see-raw"), and it's become a standard tool within and without the Open Source world. It's small (about 8000 lines), portable (standard C libraries only), free (both "gratis" and "libre"), and when used skillfully, produces - [8]better quality [9]output than the tools provided by the camera + [9]better quality [10]output than the tools provided by the camera vendor. - [10]Here's my resume. I do freelance consulting related to dcraw, and + [11]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 can be reached by sending e-mail to cybercom dot net with the @@ -53,11 +50,11 @@ http://www.cybercom.net/~dcoffin/dcraw/: News and Interviews - [11]Essay for Digital Outback Photo, 25 April 2003 - [12]Article in News.com, 21 April 2005 - [13]Interview with Digital Photography Review, 27 April 2005 - [14]Interview with Thorsten Schnebeck, 10 June 2006 - [15]Interview with Ladinamo, 16 June 2006 + [12]Essay for Digital Outback Photo, 25 April 2003 + [13]Article in News.com, 21 April 2005 + [14]Interview with Digital Photography Review, 27 April 2005 + [15]Interview with Thorsten Schnebeck, 10 June 2006 + [16]Interview with Ladinamo, 16 June 2006 My Code @@ -71,57 +68,57 @@ http://www.cybercom.net/~dcoffin/dcraw/: "fuji_green", "fujiturn", and "fujiturn16". My shell scripts are dangerous and should only be installed in a "doc" directory without execute permission. - * [16]dcraw.c -- decodes raw photos, extracts thumbnails, and + * [17]dcraw.c -- decodes raw photos, extracts thumbnails, and displays metadata - Supports 299 cameras at last count. Compile with "gcc -o dcraw -O4 + Supports 306 cameras at last count. Compile with "gcc -o dcraw -O4 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. - Don't complain that 16-bit output is too dark -- read the [17]FAQ! - * [18]UNIX manpage for dcraw + Don't complain that 16-bit output is too dark -- read the [18]FAQ! + * [19]UNIX manpage for dcraw This is dcraw's official user documentation, updated in lockstep with the source code. - * [19]rawphoto.c -- basic plugin for GIMP 1.2 & 2.0 + * [20]rawphoto.c -- basic plugin for GIMP 1.2 & 2.0 After installing "dcraw", do "gimptool --install rawphoto.c". My plugin provides a simple dialog box for loading raw files into the - Gimp. [20]Udi Fuchs and [21]Joseph Heled have written much nicer + Gimp. [21]Udi Fuchs and [22]Joseph Heled have written much nicer plugins, with live preview, histograms, and color curves. - * [22].badpixels -- my camera's "hot pixels" + * [23].badpixels -- my camera's "hot pixels" This file tells dcraw which pixels have died and when, so that it can interpolate around them. - * [23]dcraw.c,v -- complete unabridged RCS file + * [24]dcraw.c,v -- complete unabridged RCS file This file contains the entire history of dcraw.c since its conception on February 23, 1997. If you don't have the RCS toolkit, - [24]download it here. - * [25]parse.c -- read image data structures + [25]download it here. + * [26]parse.c -- read image data structures This program displays CIFF and TIFF data structures in a very cryptic format. - * [26]clean_crw.c -- clean Canon CRW files + * [27]clean_crw.c -- clean Canon CRW files Recovered or undeleted CRW files often have junk appended to them that makes them unreadable. This program safely cleans CRW files. - * [27]fujiturn.c -- rotate Fuji Super CCD images + * [28]fujiturn.c -- rotate Fuji Super CCD images An alternative to dcraw's built-in Fuji rotation. - * [28]fuji_green.c -- convert Fuji green pixels to PGM + * [29]fuji_green.c -- convert Fuji green pixels to PGM A side benefit of the Fuji Super CCD design is that its green pixels make nice greyscale images. For hackers only: - * [29]decompress.c is a simple reference decompressor for CRW files. - * [30]sony_clear.c decrypts SRF files from the Sony DSC-F828. + * [30]decompress.c is a simple reference decompressor for CRW files. + * [31]sony_clear.c decrypts SRF files from the Sony DSC-F828. Internationalization To build and install multilingual dcraw in Linux, download the latest - tarball [31]from this directory and run the "install" script. The - currently supported languages are [32]Esperanto, [33]Russian, - [34]French, [35]Italian, [36]German, [37]Portuguese, [38]Spanish, - [39]Dutch, [40]Polish, [41]Hungarian, [42]Czech, [43]Swedish, and - Chinese (both [44]Traditional and [45]Simplified). + tarball [32]from this directory and run the "install" script. The + currently supported languages are [33]Esperanto, [34]Russian, + [35]French, [36]Italian, [37]German, [38]Portuguese, [39]Spanish, + [40]Dutch, [41]Polish, [42]Hungarian, [43]Czech, [44]Swedish, + [45]Catalan, and Chinese (both [46]Traditional and [47]Simplified). To build a unilingual, self-contained DCRAW.EXE for DOS/Windows, use a - source file [46]from this directory instead. + source file [48]from this directory instead. - To add another language, send me translations of [47]this manpage and - [48]this message table in UTF-8 encoding. Translate only from my + To add another language, send me translations of [49]this manpage and + [50]this message table in UTF-8 encoding. Translate only from my original English and Esperanto texts -- other languages may contain factual errors invisible to me. @@ -152,108 +149,108 @@ http://www.cybercom.net/~dcoffin/dcraw/: digital cameras in their applications. They can call dcraw from a graphical interface, paste pieces of dcraw.c into their code, or just use dcraw.c as the documentation that camera makers refuse to provide: - * [49]ACDSee - * [50]Adobe Photoshop - * [51]BR's PhotoArchiver by Baard Riiber - * [52]BreezeBrowser by Chris Breeze - * [53]Conceiva Lightbox - * [54]cPicture by Juergen Eidt - * [55]Cumulus by Canto - * [56]dcRAW-X by Bryan Chang - * [57]DCRawUI by Sune Trudslev - * [58]Directory Opus Plugin by Leo Davidson(with C++ source code) - * [59]DeepSkyStacker by Luc Coiffier - * [60]dpMagic by Mikhail Stolpner - * [61]DRIFTT by Andrew Long - * [62]EasyRaw Studio - * [63]GraphicConverter by Thorsten Lemke - * [64]GVBox from JCO Consulting - * [65]ImageLab from Aragon System - * [66]IrfanView by Irfan Skiljan - * [67]IRIS image processor for astronomers - * [68]KA Photoservice - * [69]Lightbox by Josh Anon - * [70]LightZone by Anton Kast - * [71]LRViewer by Marc Rochkind - * [72]MediaRECOVER File Recovery Software - * [73]Mixpo by Mixpo Portfolio Broadcasting Inc. - * [74]Photo Companion by Jeff Moore - * [75]Photo Jockey by Davie Lee Reed who also wrote a [76]dcraw + * [51]ACDSee + * [52]Adobe Photoshop + * [53]BR's PhotoArchiver by Baard Riiber + * [54]BreezeBrowser by Chris Breeze + * [55]Conceiva Lightbox + * [56]cPicture by Juergen Eidt + * [57]Cumulus by Canto + * [58]dcRAW-X by Bryan Chang + * [59]DCRawUI by Sune Trudslev + * [60]Directory Opus Plugin by Leo Davidson(with C++ source code) + * [61]DeepSkyStacker by Luc Coiffier + * [62]dpMagic by Mikhail Stolpner + * [63]DRIFTT by Andrew Long + * [64]EasyRaw Studio + * [65]GraphicConverter by Thorsten Lemke + * [66]GVBox from JCO Consulting + * [67]ImageLab from Aragon System + * [68]IrfanView by Irfan Skiljan + * [69]IRIS image processor for astronomers + * [70]KA Photoservice + * [71]Lightbox by Josh Anon + * [72]LightZone by Anton Kast + * [73]LRViewer by Marc Rochkind + * [74]MediaRECOVER File Recovery Software + * [75]Mixpo by Mixpo Portfolio Broadcasting Inc. + * [76]Photo Companion by Jeff Moore + * [77]Photo Jockey by Davie Lee Reed who also wrote a [78]dcraw interface for Delphi programmers. - * [77]Photo Organizer by Balint Kis - * [78]PhotoRescue from DataRescue - * [79]PhotoReviewer by Ben Haller - * [80]Photovault by Harri Kaimio - * [81]Picasa from Google - * [82]Picture Arena by Felix Schwarz - * [83]PixInsight by Pleiades Software - * [84]PiXPO by PiXPO Inc. - * [85]PolyView by Polybytes - * [86]PowerShovel-II by Luc Minnebo - * [87]RAW Developer by Iridient Digital - * [88]Raw Magick - * [89]RawConvert by Jason Swain - * [90]RawDrop by Frank Siegert - * [91]RawShooter from pixmantec - * [92]RawView by Jari Savolainen - * [93]Serif PhotoPlus, PanoramaPlus, and AlbumPlus - * [94]SharpRaw by Duane DeSieno - * [95]SilverFast DCPro by LaserSoft Imaging - * [96]StudioLine Photo by H&M Software - * [97]ViewIt by Zdzislaw Losvik - * [98]Viewer n5 by Dmitry Fedorov - * [99]VueScan by Ed Hamrick - * [100]Xara Xtreme Pro + * [79]Photo Organizer by Balint Kis + * [80]PhotoRescue from DataRescue + * [81]PhotoReviewer by Ben Haller + * [82]Photovault by Harri Kaimio + * [83]Picasa from Google + * [84]Picture Arena by Felix Schwarz + * [85]PixInsight by Pleiades Software + * [86]PiXPO by PiXPO Inc. + * [87]PolyView by Polybytes + * [88]PowerShovel-II by Luc Minnebo + * [89]RAW Developer by Iridient Digital + * [90]Raw Magick + * [91]RawConvert by Jason Swain + * [92]RawDrop by Frank Siegert + * [93]RawShooter from pixmantec + * [94]RawView by Jari Savolainen + * [95]Serif PhotoPlus, PanoramaPlus, and AlbumPlus + * [96]SharpRaw by Duane DeSieno + * [97]SilverFast DCPro by LaserSoft Imaging + * [98]StudioLine Photo by H&M Software + * [99]ViewIt by Zdzislaw Losvik + * [100]Viewer n5 by Dmitry Fedorov + * [101]VueScan by Ed Hamrick + * [102]Xara Xtreme Pro Frequently Asked Questions I don't have a C compiler. Could you send me an executable? No, but Francisco Montilla provides Mac OS and Windows - executables [101]on his website. And Benjamin Lebsanft has - volunteered to maintain [102]Windows executables optimized for - specific CPUs. Dcraw has also been ported to [103]Amiga, - [104]MorphOS, [105]BeOS, [106]OS/2, and [107]RISC OS. + executables [103]on his website. And Benjamin Lebsanft has + volunteered to maintain [104]Windows executables optimized for + specific CPUs. Dcraw has also been ported to [105]Amiga, + [106]MorphOS, [107]BeOS, [108]OS/2, and [109]RISC OS. If you're familiar with the DOS command line but don't know C, - you can install this [108]free C compiler for Windows and + you can install this [110]free C compiler for Windows and compile dcraw.c quite easily. Why does dcraw say "Out of memory" in Windows Vista? This is an arbitrary limitation of Windows Vista that will be fixed in Service Pack 1. Thomas Nicely (of Pentium FDIV fame) - has a [109]page describing the problem. At the moment, the only + has a [111]page describing the problem. At the moment, the only workaround is to build dcraw.exe with a Microsoft compiler instead of a GNU compiler. How can I read the EXIF data (shutter speed, aperture, etc.)? - [110]Phil Harvey's ExifTool provides a unified Perl-based EXIF + [112]Phil Harvey's ExifTool provides a unified Perl-based EXIF reader (and editor!) for all cameras and file formats. "dcraw -i -v" is much faster, but provides less information. How can I read NEF files from Nikon scanners? - Dcraw only supports cameras. Try [111]this simple program for + Dcraw only supports cameras. Try [113]this simple program for scanners. How can I read Nikon Dust Off images (NDF files)? - [112]Use this program. + [114]Use this program. Do you have any specifications describing raw photo formats? Yes, but they tend to omit important details, like how to decompress the raw image or decrypt private metadata. See the - [113]TIFF spec, the [114]TIFF/EP spec, the [115]Adobe DNG spec, - the [116]CIFF (CRW) spec, and the [117]X3F spec. + [115]TIFF spec, the [116]TIFF/EP spec, the [117]Adobe DNG spec, + the [118]CIFF (CRW) spec, and the [119]X3F spec. Where can I get an assortment of raw photos to test my software? - Try [118]raw.fotosite.pl, [119]www.rawsamples.ch, and [120]Glass + Try [120]raw.fotosite.pl, [121]www.rawsamples.ch, and [122]Glass Lantern RAWpository. For the complete dcraw test suite (every camera supported by dcraw), I sell a 2-DVD set for $600 and web-based updates for $300/year. I'm designing a digital camera. How do I convert its raw photos into something that dcraw and Adobe Photoshop can open? - Download [121]LibTIFF v3.8.2 and apply [122]this patch. Then use - [123]this C program as a template for converting your photos to - valid [124]Adobe DNG files. + Download [123]LibTIFF v3.8.2 and apply [124]this patch. Then use + [125]this C program as a template for converting your photos to + valid [126]Adobe DNG files. Why are dcraw output images larger than camera JPEGs? Any algorithm that combines each pixel with its neighbors is @@ -275,11 +272,11 @@ http://www.cybercom.net/~dcoffin/dcraw/: Why is 16-bit output dark / unreadable? If you want pretty pictures straight out of dcraw, stay with 8-bit output. 16-bit linear output is the best raw material for - professional image editors such as [125]Photoshop and - [126]CinePaint, but it's no good for most image viewers. + professional image editors such as [127]Photoshop and + [128]CinePaint, but it's no good for most image viewers. What does the "-f" (four color RGB) option do? - If you see patterns like [127]this or [128]this in your output + If you see patterns like [129]this or [130]this in your output images, first try "dcraw -a". If these patterns persist, use "dcraw -f" to get rid of them. @@ -293,8 +290,8 @@ dcraw -c crw_0001.crw | pnmtopng > crw_0001.png dcraw -c crw_0001.crw | ppmtobmp > crw_0001.bmp dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg - I used the [129]Netpbm toolkit in these examples. - [130]ImageMagick also does command-line format conversions. Both + I used the [131]Netpbm toolkit in these examples. + [132]ImageMagick also does command-line format conversions. Both are free. Why don't you implement dcraw as a library? @@ -308,7 +305,7 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg formats that change every day. There's a simpler way to make dcraw modular and thread-safe: Run - it as a separate process. Eric Raymond [131]explains this + it as a separate process. Eric Raymond [133]explains this technique here. Why are there false colors along edges within the image? @@ -324,7 +321,7 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg Variable Number of Gradients (VNG), Patterned Pixel Grouping (PPG), and Adaptive Homogeneity-Directed (AHD). - [132]The Foveon X3 Capture chip requires a different kind of + [134]The Foveon X3 Capture chip requires a different kind of interpolation. Unlike CCD arrays, it captures three colors at every pixel location. But the colors are not well separated, so the raw data looks very gray. Much processing is needed to @@ -332,16 +329,16 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg How do I get my camera to take raw photos? For Canon PowerShots that don't output CRW or CR2, you need the - [133]CHDK hack. + [135]CHDK hack. For some Nikon Coolpix cameras, you need to enable a - [134]special "DIAG RAW" mode. - For Casio cameras, see [135]Maurice Delaney's website or read - [136]this discussion on dpreview. - For the Minolta DiMAGE G400, G500, G530, or G600, go [137]here - (in Russian) or [138]here (in English). + [136]special "DIAG RAW" mode. + For Casio cameras, see [137]Maurice Delaney's website or read + [138]this discussion on dpreview. + For the Minolta DiMAGE G400, G500, G530, or G600, go [139]here + (in Russian) or [140]here (in English). For the Minolta DiMAGE Z2 and Nikon Coolpix 2100/3100/3700, - [139]go here. - For SMaL cameras, see the [140]camerahacking Forum. + [141]go here. + For SMaL cameras, see the [142]camerahacking Forum. For other cameras, refer to the User's Manual. @@ -349,7 +346,7 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg 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 and e-mail me the URL. If you don't have a website, use - [141]Dropload or [142]YouSendIt. + [143]Dropload or [144]YouSendIt. Ideally, your sample image should show a standard white card or color chart in direct sunlight, with other colors in the @@ -391,6 +388,7 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg * Canon PowerShot S2 IS (CHDK hack) * Canon PowerShot S3 IS (CHDK hack) * Canon PowerShot S5 IS (CHDK hack) + * Canon PowerShot SD300 (CHDK hack) * Canon PowerShot S30 * Canon PowerShot S40 * Canon PowerShot S45 @@ -409,6 +407,7 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg * Canon EOS 350D / Digital Rebel XT / Kiss Digital N * Canon EOS 400D / Digital Rebel XTi / Kiss Digital X * Canon EOS 450D / Digital Rebel XSi / Kiss Digital X2 + * Canon EOS 1000D / Digital Rebel XS / Kiss Digital F * Canon EOS D2000C * Canon EOS-1D * Canon EOS-1DS @@ -461,11 +460,11 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg * Imacon Ixpress 22-megapixel * Imacon Ixpress 39-megapixel * ISG 2020x1520 - * Kodak DC20 (see [143]Oliver Hartman's page) - * Kodak DC25 (see [144]Jun-ichiro Itoh's page) + * Kodak DC20 (see [145]Oliver Hartman's page) + * Kodak DC25 (see [146]Jun-ichiro Itoh's page) * Kodak DC40 * Kodak DC50 - * Kodak DC120 (also try [145]kdc2tiff) + * Kodak DC120 (also try [147]kdc2tiff) * Kodak DCS200 * Kodak DCS315C * Kodak DCS330C @@ -493,6 +492,7 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg * Kodak DCS Pro SLR/c * Kodak DCS Pro SLR/n * Kodak C330 + * Kodak C603 * Kodak P850 * Kodak P880 * Kodak KAI-0340 @@ -554,6 +554,7 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg * Nikon D100 * Nikon D200 * Nikon D300 + * Nikon D700 * Nikon E700 ("DIAG RAW" hack) * Nikon E800 ("DIAG RAW" hack) * Nikon E880 ("DIAG RAW" hack) @@ -594,6 +595,7 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg * Olympus E-420 * Olympus E-500 * Olympus E-510 + * Olympus E-520 * Olympus SP310 * Olympus SP320 * Olympus SP350 @@ -619,6 +621,7 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg * Pentax K20D * Pentax K100D * Pentax K100D Super + * Pentax K200D * Pentax Optio S * Pentax Optio S4 * Pentax Optio 33WR @@ -653,6 +656,7 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg * Sony DSC-V3 * Sony DSLR-A100 * Sony DSLR-A200 + * Sony DSLR-A300 * Sony DSLR-A350 * Sony DSLR-A700 * Sony XCD-SX910CR @@ -666,143 +670,145 @@ References 3. http://www.cybercom.net/~dcoffin/dcraw/index_pt.html 4. http://www.cybercom.net/~dcoffin/dcraw/index_ru.html 5. http://www.libregraphicsmeeting.org/2008/ - 6. http://gphoto.sourceforge.net/ - 7. http://www.cybercom.net/~dcoffin/dcraw/dcraw.c - 8. http://www.insflug.org/raw/ - 9. http://www.aim-dtp.net/aim/digicam/dcraw/ - 10. http://www.cybercom.net/~dcoffin/resume.html - 11. http://www.outbackphoto.com/artofraw/raw_07/essay.html - 12. http://news.com.com/Nikons+photo+encryption+reported+broken/2100-1030_3-5679848.html - 13. http://www.dpreview.com/news/0504/05042701davecoffininterview.asp - 14. http://www.schnebeck.de/interview-with-dave-coffin-creator-of-dcraw - 15. http://www.ladinamo.org/english/raw-format-the-captive-photo.php - 16. http://www.cybercom.net/~dcoffin/dcraw/dcraw.c - 17. http://www.cybercom.net/~dcoffin/dcraw/#faq - 18. http://www.cybercom.net/~dcoffin/dcraw/dcraw.1.html - 19. http://www.cybercom.net/~dcoffin/dcraw/rawphoto.c - 20. http://ufraw.sourceforge.net/ - 21. http://pages.quicksilver.net.nz/pepe/ - 22. http://www.cybercom.net/~dcoffin/dcraw/.badpixels - 23. http://www.cybercom.net/~dcoffin/dcraw/RCS/dcraw.c,v - 24. http://www.cs.purdue.edu/homes/trinkle/RCS/ - 25. http://www.cybercom.net/~dcoffin/dcraw/parse.c - 26. http://www.cybercom.net/~dcoffin/dcraw/clean_crw.c - 27. http://www.cybercom.net/~dcoffin/dcraw/fujiturn.c - 28. http://www.cybercom.net/~dcoffin/dcraw/fuji_green.c - 29. http://www.cybercom.net/~dcoffin/dcraw/decompress.c - 30. http://www.cybercom.net/~dcoffin/dcraw/sony_clear.c - 31. http://www.cybercom.net/~dcoffin/dcraw/archive/ - 32. http://www.cybercom.net/~dcoffin/dcraw/dcraw_eo.1.html - 33. http://www.cybercom.net/~dcoffin/dcraw/dcraw_ru.1.html - 34. http://www.cybercom.net/~dcoffin/dcraw/dcraw_fr.1.html - 35. http://www.cybercom.net/~dcoffin/dcraw/dcraw_it.1.html - 36. http://www.cybercom.net/~dcoffin/dcraw/dcraw_de.1.html - 37. http://www.cybercom.net/~dcoffin/dcraw/dcraw_pt.1.html - 38. http://www.cybercom.net/~dcoffin/dcraw/dcraw_es.1.html - 39. http://www.cybercom.net/~dcoffin/dcraw/dcraw_nl.1.html - 40. http://www.cybercom.net/~dcoffin/dcraw/dcraw_pl.1.html - 41. http://www.cybercom.net/~dcoffin/dcraw/dcraw_hu.1.html - 42. http://www.cybercom.net/~dcoffin/dcraw/dcraw_cs.1.html - 43. http://www.cybercom.net/~dcoffin/dcraw/dcraw_sv.1.html - 44. http://www.cybercom.net/~dcoffin/dcraw/dcraw_zh_TW.1.html - 45. http://www.cybercom.net/~dcoffin/dcraw/dcraw_zh_CN.1.html - 46. http://www.cybercom.net/~dcoffin/dcraw/msdos/ - 47. http://www.cybercom.net/~dcoffin/dcraw/dcraw.1 - 48. http://www.cybercom.net/~dcoffin/dcraw/dcraw_eo.po - 49. http://www.acdsystems.com/ - 50. http://www.adobe.com/products/photoshop/cameraraw.html - 51. http://www.br-software.com/ - 52. http://www.breezesys.com/ - 53. http://www.conceiva.com/ - 54. http://cpicture.net/en/t_raw.html - 55. http://www.canto.com/ - 56. http://frostyplace.com/dcraw/ - 57. http://www.tanis.dk/wiki/index.php/DCRawUI - 58. http://www.pretentiousname.com/jp2raw/ - 59. http://deepskystacker.free.fr/ - 60. http://www.dpmagic.com/ - 61. http://www.nla.gov.au/preserve/dohm/driftt.html - 62. http://www.easyraw.com/ - 63. http://www.lemkesoft.com/ - 64. http://jcoconsulting.com/index.asp?Section=GVOCX - 65. http://www.aragonsystem.com/ - 66. http://www.irfanview.com/ - 67. http://www.astrosurf.com/buil/us/iris/iris.htm - 68. http://www.kaorg.com/photoservice.asp - 69. http://www.lightboxsoftware.com/ - 70. http://sonic.net/~rat/lightcrafts/ - 71. http://imageingester.com/ - 72. http://www.mediarecover.com/ - 73. http://www.mixpo.com/ - 74. http://www.wildcape.com/ - 75. http://photojockey.com/ - 76. http://smatters.com/dcraw/ - 77. http://www.k-i-s.net/ - 78. http://www.datarescue.com/photorescue/ - 79. http://www.sticksoftware.com/software/PhotoReviewer.html - 80. http://www.photovault.org/ - 81. http://www.picasa.com/ - 82. http://www.picturearena.com/ - 83. http://pleiades-astrophoto.com/ - 84. http://www.pixpo.com/ - 85. http://www.polybytes.com/ - 86. http://lens.liteserv.com/download/powershovel2.php - 87. http://www.iridientdigital.com/ - 88. http://www.rawmagick.com/ - 89. http://www.i-graph.com/ - 90. http://www.wizards.de/rawdrop - 91. http://www.pixmantec.com/ - 92. http://www.through-the-lens.net/ - 93. http://www.serif.com/ - 94. http://www.logicaldesigns.com/ - 95. http://www.silverfast.com/ - 96. http://www.studioline.net/ - 97. http://www.hexcat.com/viewit/ - 98. http://www.dimin.net/software/viewer/ - 99. http://www.hamrick.com/ - 100. http://www.xara.com/products/xtreme/ - 101. http://www.insflug.org/raw/ - 102. http://www.lebsanft.org/blog/?tag=dcraw - 103. http://aminet.net/search?query=dcraw - 104. http://amis.flatrate.ru/dcraw/ - 105. http://www.pidcock.co.uk/beos/index.html - 106. http://hobbes.nmsu.edu/cgi-bin/h-search?key=dcraw - 107. http://www.riscos.info/unix/indexes/graphics.html - 108. http://www.delorie.com/djgpp/ - 109. http://www.trnicely.net/misc/vista.html - 110. http://www.sno.phy.queensu.ca/~phil/exiftool/ - 111. http://www.cybercom.net/~dcoffin/dcraw/scan.c - 112. http://www.cybercom.net/~dcoffin/dcraw/read_ndf.c - 113. http://partners.adobe.com/asn/developer/PDFS/TN/TIFF6.pdf - 114. http://www.map.tu.chiba-u.ac.jp/IEC/100/TA2/recdoc/N4378.pdf - 115. http://www.adobe.com/products/dng/pdfs/dng_spec.pdf - 116. http://xyrion.org/ciff/ - 117. http://www.x3f.info/technotes/FileDocs/X3F_Format.pdf - 118. http://raw.fotosite.pl/ - 119. http://www.rawsamples.ch/ - 120. http://www.glasslantern.com/RAWpository/ - 121. http://dl.maptools.org/dl/libtiff/tiff-3.8.2.tar.gz - 122. http://www.cybercom.net/~dcoffin/dcraw/libtiff.patch - 123. http://www.cybercom.net/~dcoffin/dcraw/elphel_dng.c - 124. http://www.adobe.com/products/dng/main.html - 125. http://www.adobe.com/products/photoshop/main.html - 126. http://cinepaint.sourceforge.net/ - 127. http://www.cybercom.net/~dcoffin/dcraw/ahd_maze.png - 128. http://www.cybercom.net/~dcoffin/dcraw/vng_grid.png - 129. http://netpbm.sourceforge.net/ - 130. http://www.imagemagick.org/ - 131. http://www.faqs.org/docs/artu/multiprogramchapter.html - 132. http://www.dpreview.com/news/0202/02021101foveonx3.asp - 133. http://digicanon.narod.ru/ - 134. http://e2500.narod.ru/raw_format_e.htm - 135. http://www.inweb.ch/foto/rawformat.html - 136. http://forums.dpreview.com/forums/read.asp?forum=1015&message=4961779 - 137. http://myfototest.narod.ru/ - 138. http://forums.dpreview.com/forums/read.asp?forum=1024&message=11773287 - 139. http://tester13.nm.ru/nikon/ - 140. http://www.camerahacking.com/ - 141. http://dropload.com/ - 142. http://yousendit.com/ - 143. http://www.planet-interkom.de/oliver.hartmann/dc20secr.htm - 144. http://www.itojun.org/diary/19961113/index.eng.html - 145. http://kdc2tiff.sourceforge.net/ + 6. http://www.jornadespl.org/ + 7. http://gphoto.sourceforge.net/ + 8. http://www.cybercom.net/~dcoffin/dcraw/dcraw.c + 9. http://www.insflug.org/raw/ + 10. http://www.aim-dtp.net/aim/digicam/dcraw/ + 11. http://www.cybercom.net/~dcoffin/resume.html + 12. http://www.outbackphoto.com/artofraw/raw_07/essay.html + 13. http://news.com.com/Nikons+photo+encryption+reported+broken/2100-1030_3-5679848.html + 14. http://www.dpreview.com/news/0504/05042701davecoffininterview.asp + 15. http://www.schnebeck.de/interview-with-dave-coffin-creator-of-dcraw + 16. http://www.ladinamo.org/english/raw-format-the-captive-photo.php + 17. http://www.cybercom.net/~dcoffin/dcraw/dcraw.c + 18. http://www.cybercom.net/~dcoffin/dcraw/#faq + 19. http://www.cybercom.net/~dcoffin/dcraw/dcraw.1.html + 20. http://www.cybercom.net/~dcoffin/dcraw/rawphoto.c + 21. http://ufraw.sourceforge.net/ + 22. http://pages.quicksilver.net.nz/pepe/ + 23. http://www.cybercom.net/~dcoffin/dcraw/.badpixels + 24. http://www.cybercom.net/~dcoffin/dcraw/RCS/dcraw.c,v + 25. http://www.cs.purdue.edu/homes/trinkle/RCS/ + 26. http://www.cybercom.net/~dcoffin/dcraw/parse.c + 27. http://www.cybercom.net/~dcoffin/dcraw/clean_crw.c + 28. http://www.cybercom.net/~dcoffin/dcraw/fujiturn.c + 29. http://www.cybercom.net/~dcoffin/dcraw/fuji_green.c + 30. http://www.cybercom.net/~dcoffin/dcraw/decompress.c + 31. http://www.cybercom.net/~dcoffin/dcraw/sony_clear.c + 32. http://www.cybercom.net/~dcoffin/dcraw/archive/ + 33. http://www.cybercom.net/~dcoffin/dcraw/dcraw_eo.1.html + 34. http://www.cybercom.net/~dcoffin/dcraw/dcraw_ru.1.html + 35. http://www.cybercom.net/~dcoffin/dcraw/dcraw_fr.1.html + 36. http://www.cybercom.net/~dcoffin/dcraw/dcraw_it.1.html + 37. http://www.cybercom.net/~dcoffin/dcraw/dcraw_de.1.html + 38. http://www.cybercom.net/~dcoffin/dcraw/dcraw_pt.1.html + 39. http://www.cybercom.net/~dcoffin/dcraw/dcraw_es.1.html + 40. http://www.cybercom.net/~dcoffin/dcraw/dcraw_nl.1.html + 41. http://www.cybercom.net/~dcoffin/dcraw/dcraw_pl.1.html + 42. http://www.cybercom.net/~dcoffin/dcraw/dcraw_hu.1.html + 43. http://www.cybercom.net/~dcoffin/dcraw/dcraw_cs.1.html + 44. http://www.cybercom.net/~dcoffin/dcraw/dcraw_sv.1.html + 45. http://www.cybercom.net/~dcoffin/dcraw/dcraw_ca.1.html + 46. http://www.cybercom.net/~dcoffin/dcraw/dcraw_zh_TW.1.html + 47. http://www.cybercom.net/~dcoffin/dcraw/dcraw_zh_CN.1.html + 48. http://www.cybercom.net/~dcoffin/dcraw/msdos/ + 49. http://www.cybercom.net/~dcoffin/dcraw/dcraw.1 + 50. http://www.cybercom.net/~dcoffin/dcraw/dcraw_eo.po + 51. http://www.acdsystems.com/ + 52. http://www.adobe.com/products/photoshop/cameraraw.html + 53. http://www.br-software.com/ + 54. http://www.breezesys.com/ + 55. http://www.conceiva.com/ + 56. http://cpicture.net/en/t_raw.html + 57. http://www.canto.com/ + 58. http://frostyplace.com/dcraw/ + 59. http://www.tanis.dk/wiki/index.php/DCRawUI + 60. http://www.pretentiousname.com/jp2raw/ + 61. http://deepskystacker.free.fr/ + 62. http://www.dpmagic.com/ + 63. http://www.nla.gov.au/preserve/dohm/driftt.html + 64. http://www.easyraw.com/ + 65. http://www.lemkesoft.com/ + 66. http://jcoconsulting.com/index.asp?Section=GVOCX + 67. http://www.aragonsystem.com/ + 68. http://www.irfanview.com/ + 69. http://www.astrosurf.com/buil/us/iris/iris.htm + 70. http://www.kaorg.com/photoservice.asp + 71. http://www.lightboxsoftware.com/ + 72. http://sonic.net/~rat/lightcrafts/ + 73. http://imageingester.com/ + 74. http://www.mediarecover.com/ + 75. http://www.mixpo.com/ + 76. http://www.wildcape.com/ + 77. http://photojockey.com/ + 78. http://smatters.com/dcraw/ + 79. http://www.k-i-s.net/ + 80. http://www.datarescue.com/photorescue/ + 81. http://www.sticksoftware.com/software/PhotoReviewer.html + 82. http://www.photovault.org/ + 83. http://www.picasa.com/ + 84. http://www.picturearena.com/ + 85. http://pleiades-astrophoto.com/ + 86. http://www.pixpo.com/ + 87. http://www.polybytes.com/ + 88. http://lens.liteserv.com/download/powershovel2.php + 89. http://www.iridientdigital.com/ + 90. http://www.rawmagick.com/ + 91. http://www.i-graph.com/ + 92. http://www.wizards.de/rawdrop + 93. http://www.pixmantec.com/ + 94. http://www.through-the-lens.net/ + 95. http://www.serif.com/ + 96. http://www.logicaldesigns.com/ + 97. http://www.silverfast.com/ + 98. http://www.studioline.net/ + 99. http://www.hexcat.com/viewit/ + 100. http://www.dimin.net/software/viewer/ + 101. http://www.hamrick.com/ + 102. http://www.xara.com/products/xtreme/ + 103. http://www.insflug.org/raw/ + 104. http://www.lebsanft.org/blog/?tag=dcraw + 105. http://aminet.net/search?query=dcraw + 106. http://amis.flatrate.ru/dcraw/ + 107. http://www.pidcock.co.uk/beos/index.html + 108. http://hobbes.nmsu.edu/cgi-bin/h-search?key=dcraw + 109. http://www.riscos.info/unix/indexes/graphics.html + 110. http://www.delorie.com/djgpp/ + 111. http://www.trnicely.net/misc/vista.html + 112. http://www.sno.phy.queensu.ca/~phil/exiftool/ + 113. http://www.cybercom.net/~dcoffin/dcraw/scan.c + 114. http://www.cybercom.net/~dcoffin/dcraw/read_ndf.c + 115. http://partners.adobe.com/asn/developer/PDFS/TN/TIFF6.pdf + 116. http://www.map.tu.chiba-u.ac.jp/IEC/100/TA2/recdoc/N4378.pdf + 117. http://www.adobe.com/products/dng/pdfs/dng_spec.pdf + 118. http://xyrion.org/ciff/ + 119. http://www.x3f.info/technotes/FileDocs/X3F_Format.pdf + 120. http://raw.fotosite.pl/ + 121. http://www.rawsamples.ch/ + 122. http://www.glasslantern.com/RAWpository/ + 123. http://dl.maptools.org/dl/libtiff/tiff-3.8.2.tar.gz + 124. http://www.cybercom.net/~dcoffin/dcraw/libtiff.patch + 125. http://www.cybercom.net/~dcoffin/dcraw/elphel_dng.c + 126. http://www.adobe.com/products/dng/main.html + 127. http://www.adobe.com/products/photoshop/main.html + 128. http://cinepaint.sourceforge.net/ + 129. http://www.cybercom.net/~dcoffin/dcraw/ahd_maze.png + 130. http://www.cybercom.net/~dcoffin/dcraw/vng_grid.png + 131. http://netpbm.sourceforge.net/ + 132. http://www.imagemagick.org/ + 133. http://www.faqs.org/docs/artu/multiprogramchapter.html + 134. http://www.dpreview.com/news/0202/02021101foveonx3.asp + 135. http://digicanon.narod.ru/ + 136. http://e2500.narod.ru/raw_format_e.htm + 137. http://www.inweb.ch/foto/rawformat.html + 138. http://forums.dpreview.com/forums/read.asp?forum=1015&message=4961779 + 139. http://myfototest.narod.ru/ + 140. http://forums.dpreview.com/forums/read.asp?forum=1024&message=11773287 + 141. http://tester13.nm.ru/nikon/ + 142. http://www.camerahacking.com/ + 143. http://dropload.com/ + 144. http://yousendit.com/ + 145. http://www.planet-interkom.de/oliver.hartmann/dc20secr.htm + 146. http://www.itojun.org/diary/19961113/index.eng.html + 147. http://kdc2tiff.sourceforge.net/ diff --git a/dcraw.c b/dcraw.c index ae451fe..10efda7 100644 --- a/dcraw.c +++ b/dcraw.c @@ -19,11 +19,11 @@ *If you have not modified dcraw.c in any way, a link to my homepage qualifies as "full source code". - $Revision: 1.401 $ - $Date: 2008/04/07 19:25:08 $ + $Revision: 1.404 $ + $Date: 2008/08/12 19:39:17 $ */ -#define VERSION "8.85" +#define VERSION "8.87" #define _GNU_SOURCE #define _USE_MATH_DEFINES @@ -922,7 +922,7 @@ void CLASS lossless_jpeg_load_raw() for (jcol=0; jcol < jwide; jcol++) { val = *rp++; if (jh.bits <= 12) - val = curve[val]; + val = curve[val & 0xfff]; if (cr2_slice[0]) { jidx = jrow*jwide + jcol; i = jidx / (cr2_slice[1]*jh.high); @@ -1882,8 +1882,6 @@ void CLASS panasonic_load_raw() if (col < width) if ((BAYER(row,col) = pred[col & 1]) >> 12) derror(); } - maximum = 0xf96; - black = 15; } void CLASS olympus_e300_load_raw() @@ -2315,6 +2313,30 @@ void CLASS eight_bit_load_raw() maximum = curve[0xff]; } +void CLASS kodak_yrgb_load_raw() +{ + uchar *pixel; + int row, col, y, cb, cr, rgb[3], c; + + pixel = (uchar *) calloc (raw_width, 3*sizeof *pixel); + merror (pixel, "kodak_yrgb_load_raw()"); + for (row=0; row < height; row++) { + if (~row & 1) + if (fread (pixel, raw_width, 3, ifp) < 3) derror(); + for (col=0; col < raw_width; col++) { + y = pixel[width*2*(row & 1) + col]; + cb = pixel[width + (col & -2)] - 128; + cr = pixel[width + (col & -2)+1] - 128; + rgb[1] = y-((cb + cr + 2) >> 2); + rgb[2] = rgb[1] + cb; + rgb[0] = rgb[1] + cr; + FORC3 image[row*width+col][c] = LIM(rgb[c],0,255); + } + } + free (pixel); + use_gamma = 0; +} + void CLASS kodak_262_load_raw() { static const uchar kodak_tree[2][26] = @@ -2585,7 +2607,6 @@ void CLASS sony_arw2_load_raw() } } free (data); - maximum = 0x1fff; } #define HOLE(row) ((holes >> (((row) - raw_height) & 7)) & 1) @@ -3825,7 +3846,7 @@ void CLASS pre_interpolate() width = iwidth; } else { img = (ushort (*)[4]) calloc (height*width, sizeof *img); - merror (img, "unshrink()"); + merror (img, "pre_interpolate()"); for (row=0; row < height; row++) for (col=0; col < width; col++) { c = fc(row,col); @@ -4052,9 +4073,8 @@ void CLASS vng_interpolate() */ void CLASS ppg_interpolate() { - int gr[4], dir[5] = { 1, width, -1, -width, 1 }; - int row, col, avg, diff[2], guess[2], c, d, i; - static const short sort[] = { 0,2,1,3,0,1,2,3 }; + int dir[5] = { 1, width, -1, -width, 1 }; + int row, col, diff[2], guess[2], c, d, i; ushort (*pix)[4]; border_interpolate(3); @@ -4064,20 +4084,6 @@ void CLASS ppg_interpolate() for (row=3; row < height-3; row++) for (col=3+(FC(row,3) & 1), c=FC(row,col); col < width-3; col+=2) { pix = image + row*width+col; - for (avg=i=0; i < 4; i++) - avg += gr[i] = pix[dir[i]][1] << 2; - avg >>= 2; - for (i=0; i < 8; i+=2) - if (gr[sort[i]] > gr[sort[i+1]]) - SWAP(gr[sort[i]],gr[sort[i+1]]) - for (d=0; d < 4; d++) { - for (i=-2; i < 2; i++) - if (pix[i*dir[d] + (i+1)*dir[d+1]][1] <= avg) break; - if (i == 2) { - pix[0][1] = (gr[1]+gr[2]) >> 3; - goto next_pixel; - } - } for (i=0; (d=dir[i]) > 0; i++) { guess[i] = (pix[-d][1] + pix[0][c] + pix[d][1]) * 2 - pix[-2*d][c] - pix[2*d][c]; @@ -4089,7 +4095,6 @@ void CLASS ppg_interpolate() } d = dir[i = diff[0] > diff[1]]; pix[0][1] = ULIM(guess[i] >> 2, pix[d][1], pix[-d][1]); -next_pixel: ; } /* Calculate red and blue for each green pixel: */ for (row=1; row < height-1; row++) @@ -4657,6 +4662,8 @@ get2_256: cam_mul[0] = get2() / 256.0; cam_mul[2] = get2() / 256.0; } + if (tag == 0x2010 && type == 13) + load_raw = &CLASS olympus_e410_load_raw; if (tag == 0x2020) parse_thumb_note (base, 257, 258); if (tag == 0x2040) @@ -5002,6 +5009,7 @@ int CLASS parse_tiff_ifd (int base) break; case 330: /* SubIFDs */ if (!strcmp(model,"DSLR-A100") && tiff_ifd[ifd].width == 3872) { + load_raw = &CLASS sony_arw_load_raw; data_offset = get4()+base; ifd++; break; } @@ -5326,7 +5334,7 @@ void CLASS parse_tiff (int base) case 14: case 16: load_raw = &CLASS unpacked_load_raw; break; } - if (tiff_ifd[raw].bytes * 5 == raw_width * raw_height * 8) + if (tiff_ifd[raw].bytes*5 == raw_width*raw_height*8) load_raw = &CLASS olympus_e300_load_raw; if (tiff_bps == 12 && tiff_ifd[raw].phint == 2) load_raw = &CLASS olympus_cseries_load_raw; @@ -5336,7 +5344,11 @@ void CLASS parse_tiff (int base) case 262: load_raw = &CLASS kodak_262_load_raw; break; case 32767: - load_raw = &CLASS sony_arw2_load_raw; break; + load_raw = &CLASS sony_arw2_load_raw; + if (tiff_ifd[raw].bytes*8 == raw_width*raw_height*tiff_bps) + break; + raw_height += 8; + load_raw = &CLASS sony_arw_load_raw; break; case 32769: load_raw = &CLASS nikon_load_raw; break; case 32773: @@ -5411,7 +5423,7 @@ void CLASS parse_minolta (int base) break; case 0x574247: /* WBG */ get4(); - i = strstr(model,"A200") ? 3:0; + i = strcmp(model,"DiMAGE A200") ? 0:3; FORC4 cam_mul[c ^ (c >> 1) ^ i] = get2(); break; case 0x545457: /* TTW */ @@ -5937,7 +5949,8 @@ void CLASS parse_foveon() data_offset = off+24; } fseek (ifp, off+28, SEEK_SET); - if (fgetc(ifp) == 0xff && fgetc(ifp) == 0xd8) { + if (fgetc(ifp) == 0xff && fgetc(ifp) == 0xd8 + && thumb_length < len-28) { thumb_offset = off+28; thumb_length = len-28; write_thumb = &CLASS jpeg_thumb; @@ -5998,385 +6011,401 @@ void CLASS adobe_coeff (char *make, char *model) { static const struct { const char *prefix; - short black, trans[12]; + short black, maximum, trans[12]; } table[] = { - { "Apple QuickTake", 0, /* DJC */ + { "Apple QuickTake", 0, 0, /* DJC */ { 17576,-3191,-3318,5210,6733,-1942,9031,1280,-124 } }, - { "Canon EOS D2000", 0, + { "Canon EOS D2000", 0, 0, { 24542,-10860,-3401,-1490,11370,-297,2858,-605,3225 } }, - { "Canon EOS D6000", 0, + { "Canon EOS D6000", 0, 0, { 20482,-7172,-3125,-1033,10410,-285,2542,226,3136 } }, - { "Canon EOS D30", 0, + { "Canon EOS D30", 0, 0, { 9805,-2689,-1312,-5803,13064,3068,-2438,3075,8775 } }, - { "Canon EOS D60", 0, + { "Canon EOS D60", 0, 0xfa0, { 6188,-1341,-890,-7168,14489,2937,-2640,3228,8483 } }, - { "Canon EOS 5D", 0, + { "Canon EOS 5D", 0, 0xe6c, { 6347,-479,-972,-8297,15954,2480,-1968,2131,7649 } }, - { "Canon EOS 20Da", 0, - { 14155,-5065,-1382,-6550,14633,2039,-1623,1824,6561 } }, - { "Canon EOS 20D", 0, - { 6599,-537,-891,-8071,15783,2424,-1983,2234,7462 } }, - { "Canon EOS 30D", 0, - { 6257,-303,-1000,-7880,15621,2396,-1714,1904,7046 } }, - { "Canon EOS 40D", 0, - { 6071,-747,-856,-7653,15365,2441,-2025,2553,7315 } }, - { "Canon EOS 350D", 0, - { 6018,-617,-965,-8645,15881,2975,-1530,1719,7642 } }, - { "Canon EOS 400D", 0, - { 7054,-1501,-990,-8156,15544,2812,-1278,1414,7796 } }, - { "Canon EOS 450D", 0, - { 5784,-262,-821,-7539,15064,2672,-1982,2681,7427 } }, - { "Canon EOS-1Ds Mark III", 0, - { 5859,-211,-930,-8255,16017,2353,-1732,1887,7448 } }, - { "Canon EOS-1Ds Mark II", 0, - { 6517,-602,-867,-8180,15926,2378,-1618,1771,7633 } }, - { "Canon EOS-1D Mark II N", 0, - { 6240,-466,-822,-8180,15825,2500,-1801,1938,8042 } }, - { "Canon EOS-1D Mark III", 0, - { 6291,-540,-976,-8350,16145,2311,-1714,1858,7326 } }, - { "Canon EOS-1D Mark II", 0, - { 6264,-582,-724,-8312,15948,2504,-1744,1919,8664 } }, - { "Canon EOS-1DS", 0, - { 4374,3631,-1743,-7520,15212,2472,-2892,3632,8161 } }, - { "Canon EOS-1D", 0, - { 6806,-179,-1020,-8097,16415,1687,-3267,4236,7690 } }, - { "Canon EOS", 0, + { "Canon EOS 10D", 0, 0xfa0, { 8197,-2000,-1118,-6714,14335,2592,-2536,3178,8266 } }, - { "Canon PowerShot A50", 0, + { "Canon EOS 20Da", 0, 0, + { 14155,-5065,-1382,-6550,14633,2039,-1623,1824,6561 } }, + { "Canon EOS 20D", 0, 0xfff, + { 6599,-537,-891,-8071,15783,2424,-1983,2234,7462 } }, + { "Canon EOS 30D", 0, 0, + { 6257,-303,-1000,-7880,15621,2396,-1714,1904,7046 } }, + { "Canon EOS 40D", 0, 0x3f60, + { 6071,-747,-856,-7653,15365,2441,-2025,2553,7315 } }, + { "Canon EOS 300D", 0, 0xfa0, + { 8197,-2000,-1118,-6714,14335,2592,-2536,3178,8266 } }, + { "Canon EOS 350D", 0, 0xfff, + { 6018,-617,-965,-8645,15881,2975,-1530,1719,7642 } }, + { "Canon EOS 400D", 0, 0xe8e, + { 7054,-1501,-990,-8156,15544,2812,-1278,1414,7796 } }, + { "Canon EOS 450D", 0, 0x390d, + { 5784,-262,-821,-7539,15064,2672,-1982,2681,7427 } }, + { "Canon EOS 1000D", 0, 0xe43, + { 7054,-1501,-990,-8156,15544,2812,-1278,1414,7796 } }, + { "Canon EOS-1Ds Mark III", 0, 0x3bb0, + { 5859,-211,-930,-8255,16017,2353,-1732,1887,7448 } }, + { "Canon EOS-1Ds Mark II", 0, 0xe80, + { 6517,-602,-867,-8180,15926,2378,-1618,1771,7633 } }, + { "Canon EOS-1D Mark II N", 0, 0xe80, + { 6240,-466,-822,-8180,15825,2500,-1801,1938,8042 } }, + { "Canon EOS-1D Mark III", 0, 0x3bb0, + { 6291,-540,-976,-8350,16145,2311,-1714,1858,7326 } }, + { "Canon EOS-1D Mark II", 0, 0xe80, + { 6264,-582,-724,-8312,15948,2504,-1744,1919,8664 } }, + { "Canon EOS-1DS", 0, 0xe20, + { 4374,3631,-1743,-7520,15212,2472,-2892,3632,8161 } }, + { "Canon EOS-1D", 0, 0xe20, + { 6806,-179,-1020,-8097,16415,1687,-3267,4236,7690 } }, + { "Canon EOS", 0, 0, + { 8197,-2000,-1118,-6714,14335,2592,-2536,3178,8266 } }, + { "Canon PowerShot A50", 0, 0, { -5300,9846,1776,3436,684,3939,-5540,9879,6200,-1404,11175,217 } }, - { "Canon PowerShot A5", 0, + { "Canon PowerShot A5", 0, 0, { -4801,9475,1952,2926,1611,4094,-5259,10164,5947,-1554,10883,547 } }, - { "Canon PowerShot G1", 0, + { "Canon PowerShot G1", 0, 0, { -4778,9467,2172,4743,-1141,4344,-5146,9908,6077,-1566,11051,557 } }, - { "Canon PowerShot G2", 0, + { "Canon PowerShot G2", 0, 0, { 9087,-2693,-1049,-6715,14382,2537,-2291,2819,7790 } }, - { "Canon PowerShot G3", 0, + { "Canon PowerShot G3", 0, 0, { 9212,-2781,-1073,-6573,14189,2605,-2300,2844,7664 } }, - { "Canon PowerShot G5", 0, + { "Canon PowerShot G5", 0, 0, { 9757,-2872,-933,-5972,13861,2301,-1622,2328,7212 } }, - { "Canon PowerShot G6", 0, + { "Canon PowerShot G6", 0, 0, { 9877,-3775,-871,-7613,14807,3072,-1448,1305,7485 } }, - { "Canon PowerShot G9", 0, + { "Canon PowerShot G9", 0, 0, { 7368,-2141,-598,-5621,13254,2625,-1418,1696,5743 } }, - { "Canon PowerShot Pro1", 0, + { "Canon PowerShot Pro1", 0, 0, { 10062,-3522,-999,-7643,15117,2730,-765,817,7323 } }, - { "Canon PowerShot Pro70", 34, + { "Canon PowerShot Pro70", 34, 0, { -4155,9818,1529,3939,-25,4522,-5521,9870,6610,-2238,10873,1342 } }, - { "Canon PowerShot Pro90", 0, + { "Canon PowerShot Pro90", 0, 0, { -4963,9896,2235,4642,-987,4294,-5162,10011,5859,-1770,11230,577 } }, - { "Canon PowerShot S30", 0, + { "Canon PowerShot S30", 0, 0, { 10566,-3652,-1129,-6552,14662,2006,-2197,2581,7670 } }, - { "Canon PowerShot S40", 0, + { "Canon PowerShot S40", 0, 0, { 8510,-2487,-940,-6869,14231,2900,-2318,2829,9013 } }, - { "Canon PowerShot S45", 0, + { "Canon PowerShot S45", 0, 0, { 8163,-2333,-955,-6682,14174,2751,-2077,2597,8041 } }, - { "Canon PowerShot S50", 0, + { "Canon PowerShot S50", 0, 0, { 8882,-2571,-863,-6348,14234,2288,-1516,2172,6569 } }, - { "Canon PowerShot S60", 0, + { "Canon PowerShot S60", 0, 0, { 8795,-2482,-797,-7804,15403,2573,-1422,1996,7082 } }, - { "Canon PowerShot S70", 0, + { "Canon PowerShot S70", 0, 0, { 9976,-3810,-832,-7115,14463,2906,-901,989,7889 } }, - { "Canon PowerShot A610", 0, /* DJC */ + { "Canon PowerShot A610", 0, 0, /* DJC */ { 15591,-6402,-1592,-5365,13198,2168,-1300,1824,5075 } }, - { "Canon PowerShot A620", 0, /* DJC */ + { "Canon PowerShot A620", 0, 0, /* DJC */ { 15265,-6193,-1558,-4125,12116,2010,-888,1639,5220 } }, - { "Canon PowerShot A640", 0, /* DJC */ + { "Canon PowerShot A640", 0, 0, /* DJC */ { 13124,-5329,-1390,-3602,11658,1944,-1612,2863,4885 } }, - { "Canon PowerShot A650", 0, /* DJC */ + { "Canon PowerShot A650", 0, 0, /* DJC */ { 9427,-3036,-959,-2581,10671,1911,-1039,1982,4430 } }, - { "Canon PowerShot S3 IS", 0, /* DJC */ + { "Canon PowerShot A720", 0, 0, /* DJC */ + { 14573,-5482,-1546,-1266,9799,1468,-1040,1912,3810 } }, + { "Canon PowerShot S3 IS", 0, 0, /* DJC */ { 14062,-5199,-1446,-4712,12470,2243,-1286,2028,4836 } }, - { "CINE 650", 0, + { "CINE 650", 0, 0, { 3390,480,-500,-800,3610,340,-550,2336,1192 } }, - { "CINE 660", 0, + { "CINE 660", 0, 0, { 3390,480,-500,-800,3610,340,-550,2336,1192 } }, - { "CINE", 0, + { "CINE", 0, 0, { 20183,-4295,-423,-3940,15330,3985,-280,4870,9800 } }, - { "Contax N Digital", 0, + { "Contax N Digital", 0, 0xf1e, { 7777,1285,-1053,-9280,16543,2916,-3677,5679,7060 } }, - { "EPSON R-D1", 0, + { "EPSON R-D1", 0, 0, { 6827,-1878,-732,-8429,16012,2564,-704,592,7145 } }, - { "FUJIFILM FinePix E550", 0, + { "FUJIFILM FinePix E550", 0, 0, { 11044,-3888,-1120,-7248,15168,2208,-1531,2277,8069 } }, - { "FUJIFILM FinePix E900", 0, + { "FUJIFILM FinePix E900", 0, 0, { 9183,-2526,-1078,-7461,15071,2574,-2022,2440,8639 } }, - { "FUJIFILM FinePix F8", 0, + { "FUJIFILM FinePix F8", 0, 0, { 11044,-3888,-1120,-7248,15168,2208,-1531,2277,8069 } }, - { "FUJIFILM FinePix F7", 0, + { "FUJIFILM FinePix F7", 0, 0, { 10004,-3219,-1201,-7036,15047,2107,-1863,2565,7736 } }, - { "FUJIFILM FinePix S100FS", 514, + { "FUJIFILM FinePix S100FS", 514, 0, { 11521,-4355,-1065,-6524,13767,3058,-1466,1984,6045 } }, - { "FUJIFILM FinePix S20Pro", 0, + { "FUJIFILM FinePix S20Pro", 0, 0, { 10004,-3219,-1201,-7036,15047,2107,-1863,2565,7736 } }, - { "FUJIFILM FinePix S2Pro", 128, + { "FUJIFILM FinePix S2Pro", 128, 0, { 12492,-4690,-1402,-7033,15423,1647,-1507,2111,7697 } }, - { "FUJIFILM FinePix S3Pro", 0, + { "FUJIFILM FinePix S3Pro", 0, 0, { 11807,-4612,-1294,-8927,16968,1988,-2120,2741,8006 } }, - { "FUJIFILM FinePix S5Pro", 0, + { "FUJIFILM FinePix S5Pro", 0, 0, { 12300,-5110,-1304,-9117,17143,1998,-1947,2448,8100 } }, - { "FUJIFILM FinePix S5000", 0, + { "FUJIFILM FinePix S5000", 0, 0, { 8754,-2732,-1019,-7204,15069,2276,-1702,2334,6982 } }, - { "FUJIFILM FinePix S5100", 0, + { "FUJIFILM FinePix S5100", 0, 0x3e00, { 11940,-4431,-1255,-6766,14428,2542,-993,1165,7421 } }, - { "FUJIFILM FinePix S5500", 0, + { "FUJIFILM FinePix S5500", 0, 0x3e00, { 11940,-4431,-1255,-6766,14428,2542,-993,1165,7421 } }, - { "FUJIFILM FinePix S5200", 0, + { "FUJIFILM FinePix S5200", 0, 0, { 9636,-2804,-988,-7442,15040,2589,-1803,2311,8621 } }, - { "FUJIFILM FinePix S5600", 0, + { "FUJIFILM FinePix S5600", 0, 0, { 9636,-2804,-988,-7442,15040,2589,-1803,2311,8621 } }, - { "FUJIFILM FinePix S6", 0, + { "FUJIFILM FinePix S6", 0, 0, { 12628,-4887,-1401,-6861,14996,1962,-2198,2782,7091 } }, - { "FUJIFILM FinePix S7000", 0, + { "FUJIFILM FinePix S7000", 0, 0, { 10190,-3506,-1312,-7153,15051,2238,-2003,2399,7505 } }, - { "FUJIFILM FinePix S9000", 0, + { "FUJIFILM FinePix S9000", 0, 0, { 10491,-3423,-1145,-7385,15027,2538,-1809,2275,8692 } }, - { "FUJIFILM FinePix S9500", 0, + { "FUJIFILM FinePix S9500", 0, 0, { 10491,-3423,-1145,-7385,15027,2538,-1809,2275,8692 } }, - { "FUJIFILM FinePix S9100", 0, + { "FUJIFILM FinePix S9100", 0, 0, { 12343,-4515,-1285,-7165,14899,2435,-1895,2496,8800 } }, - { "FUJIFILM FinePix S9600", 0, + { "FUJIFILM FinePix S9600", 0, 0, { 12343,-4515,-1285,-7165,14899,2435,-1895,2496,8800 } }, - { "FUJIFILM IS-1", 0, + { "FUJIFILM IS-1", 0, 0, { 21461,-10807,-1441,-2332,10599,1999,289,875,7703 } }, - { "Imacon Ixpress", 0, /* DJC */ + { "Imacon Ixpress", 0, 0, /* DJC */ { 7025,-1415,-704,-5188,13765,1424,-1248,2742,6038 } }, - { "KODAK NC2000", 0, + { "KODAK NC2000", 0, 0, { 13891,-6055,-803,-465,9919,642,2121,82,1291 } }, - { "Kodak DCS315C", 8, + { "Kodak DCS315C", 8, 0, { 17523,-4827,-2510,756,8546,-137,6113,1649,2250 } }, - { "Kodak DCS330C", 8, + { "Kodak DCS330C", 8, 0, { 20620,-7572,-2801,-103,10073,-396,3551,-233,2220 } }, - { "KODAK DCS420", 0, + { "KODAK DCS420", 0, 0, { 10868,-1852,-644,-1537,11083,484,2343,628,2216 } }, - { "KODAK DCS460", 0, + { "KODAK DCS460", 0, 0, { 10592,-2206,-967,-1944,11685,230,2206,670,1273 } }, - { "KODAK EOSDCS1", 0, + { "KODAK EOSDCS1", 0, 0, { 10592,-2206,-967,-1944,11685,230,2206,670,1273 } }, - { "KODAK EOSDCS3B", 0, + { "KODAK EOSDCS3B", 0, 0, { 9898,-2700,-940,-2478,12219,206,1985,634,1031 } }, - { "Kodak DCS520C", 180, + { "Kodak DCS520C", 180, 0, { 24542,-10860,-3401,-1490,11370,-297,2858,-605,3225 } }, - { "Kodak DCS560C", 188, + { "Kodak DCS560C", 188, 0, { 20482,-7172,-3125,-1033,10410,-285,2542,226,3136 } }, - { "Kodak DCS620C", 180, + { "Kodak DCS620C", 180, 0, { 23617,-10175,-3149,-2054,11749,-272,2586,-489,3453 } }, - { "Kodak DCS620X", 185, + { "Kodak DCS620X", 185, 0, { 13095,-6231,154,12221,-21,-2137,895,4602,2258 } }, - { "Kodak DCS660C", 214, + { "Kodak DCS660C", 214, 0, { 18244,-6351,-2739,-791,11193,-521,3711,-129,2802 } }, - { "Kodak DCS720X", 0, + { "Kodak DCS720X", 0, 0, { 11775,-5884,950,9556,1846,-1286,-1019,6221,2728 } }, - { "Kodak DCS760C", 0, + { "Kodak DCS760C", 0, 0, { 16623,-6309,-1411,-4344,13923,323,2285,274,2926 } }, - { "Kodak DCS Pro SLR", 0, + { "Kodak DCS Pro SLR", 0, 0, { 5494,2393,-232,-6427,13850,2846,-1876,3997,5445 } }, - { "Kodak DCS Pro 14nx", 0, + { "Kodak DCS Pro 14nx", 0, 0, { 5494,2393,-232,-6427,13850,2846,-1876,3997,5445 } }, - { "Kodak DCS Pro 14", 0, + { "Kodak DCS Pro 14", 0, 0, { 7791,3128,-776,-8588,16458,2039,-2455,4006,6198 } }, - { "Kodak ProBack645", 0, + { "Kodak ProBack645", 0, 0, { 16414,-6060,-1470,-3555,13037,473,2545,122,4948 } }, - { "Kodak ProBack", 0, + { "Kodak ProBack", 0, 0, { 21179,-8316,-2918,-915,11019,-165,3477,-180,4210 } }, - { "KODAK P712", 0, + { "KODAK P712", 0, 0, { 9658,-3314,-823,-5163,12695,2768,-1342,1843,6044 } }, - { "KODAK P850", 0, + { "KODAK P850", 0, 0xf7c, { 10511,-3836,-1102,-6946,14587,2558,-1481,1792,6246 } }, - { "KODAK P880", 0, + { "KODAK P880", 0, 0xfff, { 12805,-4662,-1376,-7480,15267,2360,-1626,2194,7904 } }, - { "Leaf CMost", 0, + { "Leaf CMost", 0, 0, { 3952,2189,449,-6701,14585,2275,-4536,7349,6536 } }, - { "Leaf Valeo 6", 0, + { "Leaf Valeo 6", 0, 0, { 3952,2189,449,-6701,14585,2275,-4536,7349,6536 } }, - { "Leaf Aptus 54S", 0, + { "Leaf Aptus 54S", 0, 0, { 8236,1746,-1314,-8251,15953,2428,-3673,5786,5771 } }, - { "Leaf Aptus 65", 0, + { "Leaf Aptus 65", 0, 0, { 7914,1414,-1190,-8777,16582,2280,-2811,4605,5562 } }, - { "Leaf Aptus 75", 0, + { "Leaf Aptus 75", 0, 0, { 7914,1414,-1190,-8777,16582,2280,-2811,4605,5562 } }, - { "Leaf", 0, + { "Leaf", 0, 0, { 8236,1746,-1314,-8251,15953,2428,-3673,5786,5771 } }, - { "Mamiya ZD", 0, + { "Mamiya ZD", 0, 0, { 7645,2579,-1363,-8689,16717,2015,-3712,5941,5961 } }, - { "Micron 2010", 110, /* DJC */ + { "Micron 2010", 110, 0, /* DJC */ { 16695,-3761,-2151,155,9682,163,3433,951,4904 } }, - { "Minolta DiMAGE 5", 0, + { "Minolta DiMAGE 5", 0, 0xf7d, { 8983,-2942,-963,-6556,14476,2237,-2426,2887,8014 } }, - { "Minolta DiMAGE 7Hi", 0, + { "Minolta DiMAGE 7Hi", 0, 0xf7d, { 11368,-3894,-1242,-6521,14358,2339,-2475,3056,7285 } }, - { "Minolta DiMAGE 7", 0, + { "Minolta DiMAGE 7", 0, 0xf7d, { 9144,-2777,-998,-6676,14556,2281,-2470,3019,7744 } }, - { "Minolta DiMAGE A1", 0, + { "Minolta DiMAGE A1", 0, 0xf8b, { 9274,-2547,-1167,-8220,16323,1943,-2273,2720,8340 } }, - { "MINOLTA DiMAGE A200", 0, + { "MINOLTA DiMAGE A200", 0, 0, { 8560,-2487,-986,-8112,15535,2771,-1209,1324,7743 } }, - { "Minolta DiMAGE A2", 0, + { "Minolta DiMAGE A2", 0, 0xf8f, { 9097,-2726,-1053,-8073,15506,2762,-966,981,7763 } }, - { "Minolta DiMAGE Z2", 0, /* DJC */ + { "Minolta DiMAGE Z2", 0, 0, /* DJC */ { 11280,-3564,-1370,-4655,12374,2282,-1423,2168,5396 } }, - { "MINOLTA DYNAX 5", 0, + { "MINOLTA DYNAX 5", 0, 0xffb, { 10284,-3283,-1086,-7957,15762,2316,-829,882,6644 } }, - { "MINOLTA DYNAX 7", 0, + { "MINOLTA DYNAX 7", 0, 0xffb, { 10239,-3104,-1099,-8037,15727,2451,-927,925,6871 } }, - { "NIKON D100", 0, + { "NIKON D100", 0, 0, { 5902,-933,-782,-8983,16719,2354,-1402,1455,6464 } }, - { "NIKON D1H", 0, + { "NIKON D1H", 0, 0, { 7577,-2166,-926,-7454,15592,1934,-2377,2808,8606 } }, - { "NIKON D1X", 0, + { "NIKON D1X", 0, 0, { 7702,-2245,-975,-9114,17242,1875,-2679,3055,8521 } }, - { "NIKON D1", 0, /* multiplied by 2.218750, 1.0, 1.148438 */ + { "NIKON D1", 0, 0, /* multiplied by 2.218750, 1.0, 1.148438 */ { 16772,-4726,-2141,-7611,15713,1972,-2846,3494,9521 } }, - { "NIKON D2H", 0, + { "NIKON D2H", 0, 0, { 5710,-901,-615,-8594,16617,2024,-2975,4120,6830 } }, - { "NIKON D2X", 0, + { "NIKON D2X", 0, 0, { 10231,-2769,-1255,-8301,15900,2552,-797,680,7148 } }, - { "NIKON D40X", 0, + { "NIKON D40X", 0, 0, { 8819,-2543,-911,-9025,16928,2151,-1329,1213,8449 } }, - { "NIKON D40", 0, + { "NIKON D40", 0, 0, { 6992,-1668,-806,-8138,15748,2543,-874,850,7897 } }, - { "NIKON D50", 0, + { "NIKON D50", 0, 0, { 7732,-2422,-789,-8238,15884,2498,-859,783,7330 } }, - { "NIKON D60", 0, + { "NIKON D60", 0, 0, { 8736,-2458,-935,-9075,16894,2251,-1354,1242,8263 } }, - { "NIKON D70", 0, - { 7732,-2422,-789,-8238,15884,2498,-859,783,7330 } }, - { "NIKON D80", 0, - { 8629,-2410,-883,-9055,16940,2171,-1490,1363,8520 } }, - { "NIKON D200", 0, - { 8367,-2248,-763,-8758,16447,2422,-1527,1550,8053 } }, - { "NIKON D300", 0, - { 9030,-1992,-715,-8465,16302,2255,-2689,3217,8069 } }, - { "NIKON D3", 0, + { "NIKON D700", 0, 0, { 8139,-2171,-663,-8747,16541,2295,-1925,2008,8093 } }, - { "NIKON E950", 0, /* DJC */ + { "NIKON D70", 0, 0, + { 7732,-2422,-789,-8238,15884,2498,-859,783,7330 } }, + { "NIKON D80", 0, 0, + { 8629,-2410,-883,-9055,16940,2171,-1490,1363,8520 } }, + { "NIKON D200", 0, 0xfbc, + { 8367,-2248,-763,-8758,16447,2422,-1527,1550,8053 } }, + { "NIKON D300", 0, 0, + { 9030,-1992,-715,-8465,16302,2255,-2689,3217,8069 } }, + { "NIKON D3", 0, 0, + { 8139,-2171,-663,-8747,16541,2295,-1925,2008,8093 } }, + { "NIKON E950", 0, 0x3dd, /* DJC */ { -3746,10611,1665,9621,-1734,2114,-2389,7082,3064,3406,6116,-244 } }, - { "NIKON E995", 0, /* copied from E5000 */ + { "NIKON E995", 0, 0, /* copied from E5000 */ { -5547,11762,2189,5814,-558,3342,-4924,9840,5949,688,9083,96 } }, - { "NIKON E2100", 0, /* copied from Z2, new white balance */ + { "NIKON E2100", 0, 0, /* copied from Z2, new white balance */ { 13142,-4152,-1596,-4655,12374,2282,-1769,2696,6711} }, - { "NIKON E2500", 0, + { "NIKON E2500", 0, 0, { -5547,11762,2189,5814,-558,3342,-4924,9840,5949,688,9083,96 } }, - { "NIKON E4300", 0, /* copied from Minolta DiMAGE Z2 */ + { "NIKON E4300", 0, 0, /* copied from Minolta DiMAGE Z2 */ { 11280,-3564,-1370,-4655,12374,2282,-1423,2168,5396 } }, - { "NIKON E4500", 0, + { "NIKON E4500", 0, 0, { -5547,11762,2189,5814,-558,3342,-4924,9840,5949,688,9083,96 } }, - { "NIKON E5000", 0, + { "NIKON E5000", 0, 0, { -5547,11762,2189,5814,-558,3342,-4924,9840,5949,688,9083,96 } }, - { "NIKON E5400", 0, + { "NIKON E5400", 0, 0, { 9349,-2987,-1001,-7919,15766,2266,-2098,2680,6839 } }, - { "NIKON E5700", 0, + { "NIKON E5700", 0, 0, { -5368,11478,2368,5537,-113,3148,-4969,10021,5782,778,9028,211 } }, - { "NIKON E8400", 0, + { "NIKON E8400", 0, 0, { 7842,-2320,-992,-8154,15718,2599,-1098,1342,7560 } }, - { "NIKON E8700", 0, + { "NIKON E8700", 0, 0, { 8489,-2583,-1036,-8051,15583,2643,-1307,1407,7354 } }, - { "NIKON E8800", 0, + { "NIKON E8800", 0, 0, { 7971,-2314,-913,-8451,15762,2894,-1442,1520,7610 } }, - { "OLYMPUS C5050", 0, + { "OLYMPUS C5050", 0, 0, { 10508,-3124,-1273,-6079,14294,1901,-1653,2306,6237 } }, - { "OLYMPUS C5060", 0, + { "OLYMPUS C5060", 0, 0, { 10445,-3362,-1307,-7662,15690,2058,-1135,1176,7602 } }, - { "OLYMPUS C7070", 0, + { "OLYMPUS C7070", 0, 0, { 10252,-3531,-1095,-7114,14850,2436,-1451,1723,6365 } }, - { "OLYMPUS C70", 0, + { "OLYMPUS C70", 0, 0, { 10793,-3791,-1146,-7498,15177,2488,-1390,1577,7321 } }, - { "OLYMPUS C80", 0, + { "OLYMPUS C80", 0, 0, { 8606,-2509,-1014,-8238,15714,2703,-942,979,7760 } }, - { "OLYMPUS E-10", 0, + { "OLYMPUS E-10", 0, 0xffc0, { 12745,-4500,-1416,-6062,14542,1580,-1934,2256,6603 } }, - { "OLYMPUS E-1", 0, + { "OLYMPUS E-1", 0, 0xfff0, { 11846,-4767,-945,-7027,15878,1089,-2699,4122,8311 } }, - { "OLYMPUS E-20", 0, + { "OLYMPUS E-20", 0, 0xffc0, { 13173,-4732,-1499,-5807,14036,1895,-2045,2452,7142 } }, - { "OLYMPUS E-300", 0, + { "OLYMPUS E-300", 0, 0, { 7828,-1761,-348,-5788,14071,1830,-2853,4518,6557 } }, - { "OLYMPUS E-330", 0, + { "OLYMPUS E-330", 0, 0, { 8961,-2473,-1084,-7979,15990,2067,-2319,3035,8249 } }, - { "OLYMPUS E-3", 0, + { "OLYMPUS E-3", 0, 0xf99, { 9487,-2875,-1115,-7533,15606,2010,-1618,2100,7389 } }, - { "OLYMPUS E-400", 0, + { "OLYMPUS E-400", 0, 0xfff0, { 6169,-1483,-21,-7107,14761,2536,-2904,3580,8568 } }, - { "OLYMPUS E-410", 0, + { "OLYMPUS E-410", 0, 0xf6a, { 8856,-2582,-1026,-7761,15766,2082,-2009,2575,7469 } }, - { "OLYMPUS E-500", 0, + { "OLYMPUS E-420", 0, 0xfd7, + { 8746,-2425,-1095,-7594,15612,2073,-1780,2309,7416 } }, + { "OLYMPUS E-500", 0, 0, { 8136,-1968,-299,-5481,13742,1871,-2556,4205,6630 } }, - { "OLYMPUS E-510", 0, + { "OLYMPUS E-510", 0, 0xf6a, { 8785,-2529,-1033,-7639,15624,2112,-1783,2300,7817 } }, - { "OLYMPUS SP350", 0, + { "OLYMPUS E-520", 0, 0xfd2, + { 8344,-2322,-1020,-7596,15635,2048,-1748,2269,7287 } }, + { "OLYMPUS SP350", 0, 0, { 12078,-4836,-1069,-6671,14306,2578,-786,939,7418 } }, - { "OLYMPUS SP3", 0, + { "OLYMPUS SP3", 0, 0, { 11766,-4445,-1067,-6901,14421,2707,-1029,1217,7572 } }, - { "OLYMPUS SP500UZ", 0, + { "OLYMPUS SP500UZ", 0, 0xfff, { 9493,-3415,-666,-5211,12334,3260,-1548,2262,6482 } }, - { "OLYMPUS SP510UZ", 0, + { "OLYMPUS SP510UZ", 0, 0xffe, { 10593,-3607,-1010,-5881,13127,3084,-1200,1805,6721 } }, - { "OLYMPUS SP550UZ", 0, + { "OLYMPUS SP550UZ", 0, 0xffe, { 11597,-4006,-1049,-5432,12799,2957,-1029,1750,6516 } }, - { "OLYMPUS SP560UZ", 0, + { "OLYMPUS SP560UZ", 0, 0xff9, { 10915,-3677,-982,-5587,12986,2911,-1168,1968,6223 } }, - { "OLYMPUS SP570UZ", 0, + { "OLYMPUS SP570UZ", 0, 0, { 11522,-4044,-1146,-4736,12172,2904,-988,1829,6039 } }, - { "PENTAX *ist DL2", 0, + { "PENTAX *ist DL2", 0, 0, { 10504,-2438,-1189,-8603,16207,2531,-1022,863,12242 } }, - { "PENTAX *ist DL", 0, + { "PENTAX *ist DL", 0, 0, { 10829,-2838,-1115,-8339,15817,2696,-837,680,11939 } }, - { "PENTAX *ist DS2", 0, + { "PENTAX *ist DS2", 0, 0, { 10504,-2438,-1189,-8603,16207,2531,-1022,863,12242 } }, - { "PENTAX *ist DS", 0, + { "PENTAX *ist DS", 0, 0, { 10371,-2333,-1206,-8688,16231,2602,-1230,1116,11282 } }, - { "PENTAX *ist D", 0, + { "PENTAX *ist D", 0, 0, { 9651,-2059,-1189,-8881,16512,2487,-1460,1345,10687 } }, - { "PENTAX K10D", 0, + { "PENTAX K10D", 0, 0, { 9566,-2863,-803,-7170,15172,2112,-818,803,9705 } }, - { "PENTAX K1", 0, + { "PENTAX K1", 0, 0, { 11095,-3157,-1324,-8377,15834,2720,-1108,947,11688 } }, - { "PENTAX K20D", 0, + { "PENTAX K20D", 0, 0, { 9427,-2714,-868,-7493,16092,1373,-2199,3264,7180 } }, - { "PENTAX K200D", 0, + { "PENTAX K200D", 0, 0, { 9186,-2678,-907,-8693,16517,2260,-1129,1094,8524 } }, - { "Panasonic DMC-FZ8", 0, + { "Panasonic DMC-FZ8", 0, 0xf7f0, { 8986,-2755,-802,-6341,13575,3077,-1476,2144,6379 } }, - { "Panasonic DMC-FZ18", 0, + { "Panasonic DMC-FZ18", 0, 0, { 9932,-3060,-935,-5809,13331,2753,-1267,2155,5575 } }, - { "Panasonic DMC-FZ30", 0, + { "Panasonic DMC-FZ30", 0, 0xf94c, { 10976,-4029,-1141,-7918,15491,2600,-1670,2071,8246 } }, - { "Panasonic DMC-FZ50", 0, /* aka "LEICA V-LUX1" */ + { "Panasonic DMC-FZ50", 0, 0xfff0, /* aka "LEICA V-LUX1" */ { 7906,-2709,-594,-6231,13351,3220,-1922,2631,6537 } }, - { "Panasonic DMC-L10", 0, + { "Panasonic DMC-L10", 15, 0xf96, { 8025,-1942,-1050,-7920,15904,2100,-2456,3005,7039 } }, - { "Panasonic DMC-L1", 0, /* aka "LEICA DIGILUX 3" */ + { "Panasonic DMC-L1", 0, 0xf7fc, /* aka "LEICA DIGILUX 3" */ { 8054,-1885,-1025,-8349,16367,2040,-2805,3542,7629 } }, - { "Panasonic DMC-LC1", 0, /* aka "LEICA DIGILUX 2" */ + { "Panasonic DMC-LC1", 0, 0, /* aka "LEICA DIGILUX 2" */ { 11340,-4069,-1275,-7555,15266,2448,-2960,3426,7685 } }, - { "Panasonic DMC-LX1", 0, /* aka "LEICA D-LUX2" */ + { "Panasonic DMC-LX1", 0, 0xf7f0, /* aka "LEICA D-LUX2" */ { 10704,-4187,-1230,-8314,15952,2501,-920,945,8927 } }, - { "Panasonic DMC-LX2", 0, /* aka "LEICA D-LUX3" */ + { "Panasonic DMC-LX2", 0, 0, /* aka "LEICA D-LUX3" */ { 8048,-2810,-623,-6450,13519,3272,-1700,2146,7049 } }, - { "Phase One H 20", 0, /* DJC */ + { "Phase One H 20", 0, 0, /* DJC */ { 1313,1855,-109,-6715,15908,808,-327,1840,6020 } }, - { "Phase One P 2", 0, + { "Phase One P 2", 0, 0, { 2905,732,-237,-8134,16626,1476,-3038,4253,7517 } }, - { "Phase One P 30", 0, + { "Phase One P 30", 0, 0, { 4516,-245,-37,-7020,14976,2173,-3206,4671,7087 } }, - { "Phase One P 45", 0, + { "Phase One P 45", 0, 0, { 5053,-24,-117,-5684,14076,1702,-2619,4492,5849 } }, - { "SAMSUNG GX-1", 0, + { "SAMSUNG GX-1", 0, 0, { 10504,-2438,-1189,-8603,16207,2531,-1022,863,12242 } }, - { "Sinar", 0, /* DJC */ + { "Sinar", 0, 0, /* DJC */ { 16442,-2956,-2422,-2877,12128,750,-1136,6066,4559 } }, - { "SONY DSC-F828", 491, + { "SONY DSC-F828", 491, 0, { 7924,-1910,-777,-8226,15459,2998,-1517,2199,6818,-7242,11401,3481 } }, - { "SONY DSC-R1", 512, + { "SONY DSC-R1", 512, 0, { 8512,-2641,-694,-8042,15670,2526,-1821,2117,7414 } }, - { "SONY DSC-V3", 0, + { "SONY DSC-V3", 0, 0, { 7511,-2571,-692,-7894,15088,3060,-948,1111,8128 } }, - { "SONY DSLR-A100", 0, + { "SONY DSLR-A100", 0, 0xfeb, { 9437,-2811,-774,-8405,16215,2290,-710,596,7181 } }, - { "SONY DSLR-A200", 0, + { "SONY DSLR-A200", 0, 0, { 9847,-3091,-928,-8485,16345,2225,-715,595,7103 } }, - { "SONY DSLR-A3", 0, + { "SONY DSLR-A300", 0, 0, + { 9847,-3091,-928,-8485,16345,2225,-715,595,7103 } }, + { "SONY DSLR-A350", 0, 0xffc, { 6038,-1484,-578,-9146,16746,2513,-875,746,7217 } }, - { "SONY DSLR-A700", 254, + { "SONY DSLR-A700", 254, 0x1ffe, { 5775,-805,-359,-8574,16295,2391,-1943,2341,7249 } } }; double cam_xyz[4][3]; @@ -6386,8 +6415,8 @@ void CLASS adobe_coeff (char *make, char *model) sprintf (name, "%s %s", make, model); for (i=0; i < sizeof table / sizeof *table; i++) if (!strncmp (name, table[i].prefix, strlen(table[i].prefix))) { - if (table[i].black) - black = table[i].black; + if (table[i].black) black = (ushort) table[i].black; + if (table[i].maximum) maximum = (ushort) table[i].maximum; for (j=0; j < 12; j++) cam_xyz[0][j] = table[i].trans[j] / 10000.0; cam_xyz_coeff (cam_xyz); @@ -6447,66 +6476,72 @@ void CLASS identify() int fsize; char make[12], model[19], withjpeg; } table[] = { - { 62464, "Kodak", "DC20" ,0 }, - { 124928, "Kodak", "DC20" ,0 }, - { 1652736, "Kodak", "DCS200" ,0 }, - { 4159302, "Kodak", "C330" ,0 }, - { 4162462, "Kodak", "C330" ,0 }, - { 311696, "ST Micro", "STV680 VGA" ,0 }, /* SPYz */ - { 614400, "Kodak", "KAI-0340" ,0 }, - { 787456, "Creative", "PC-CAM 600" ,0 }, - { 1138688, "Minolta", "RD175" ,0 }, - { 3840000, "Foculus", "531C" ,0 }, - { 786432, "AVT", "F-080C" ,0 }, - { 1447680, "AVT", "F-145C" ,0 }, - { 1920000, "AVT", "F-201C" ,0 }, - { 5067304, "AVT", "F-510C" ,0 }, - { 10134608, "AVT", "F-510C" ,0 }, - { 16157136, "AVT", "F-810C" ,0 }, - { 1409024, "Sony", "XCD-SX910CR",0 }, - { 2818048, "Sony", "XCD-SX910CR",0 }, - { 3884928, "Micron", "2010" ,0 }, - { 6624000, "Pixelink", "A782" ,0 }, - { 13248000, "Pixelink", "A782" ,0 }, - { 6291456, "RoverShot","3320AF" ,0 }, - { 6553440, "Canon", "PowerShot A460",0 }, - { 6653280, "Canon", "PowerShot A530",0 }, - { 6573120, "Canon", "PowerShot A610",0 }, - { 9219600, "Canon", "PowerShot A620",0 }, - { 10341600, "Canon", "PowerShot A720",0 }, - { 10383120, "Canon", "PowerShot A630",0 }, - { 12945240, "Canon", "PowerShot A640",0 }, - { 15636240, "Canon", "PowerShot A650",0 }, - { 7710960, "Canon", "PowerShot S3 IS",0 }, - { 5939200, "OLYMPUS", "C770UZ" ,0 }, - { 1581060, "NIKON", "E900" ,1 }, /* or E900s,E910 */ - { 2465792, "NIKON", "E950" ,1 }, /* or E800,E700 */ - { 2940928, "NIKON", "E2100" ,1 }, /* or E2500 */ - { 4771840, "NIKON", "E990" ,1 }, /* or E995, Oly C3030Z */ - { 4775936, "NIKON", "E3700" ,1 }, /* or Optio 33WR */ - { 5869568, "NIKON", "E4300" ,1 }, /* or DiMAGE Z2 */ - { 5865472, "NIKON", "E4500" ,1 }, - { 7438336, "NIKON", "E5000" ,1 }, /* or E5700 */ - { 8998912, "NIKON", "COOLPIX S6" ,1 }, - { 1976352, "CASIO", "QV-2000UX" ,1 }, - { 3217760, "CASIO", "QV-3*00EX" ,1 }, - { 6218368, "CASIO", "QV-5700" ,1 }, - { 6054400, "CASIO", "QV-R41" ,1 }, - { 7530816, "CASIO", "QV-R51" ,1 }, - { 7684000, "CASIO", "QV-4000" ,1 }, - { 4948608, "CASIO", "EX-S100" ,1 }, - { 7542528, "CASIO", "EX-Z50" ,1 }, - { 7753344, "CASIO", "EX-Z55" ,1 }, - { 7426656, "CASIO", "EX-P505" ,1 }, - { 9313536, "CASIO", "EX-P600" ,1 }, - { 10979200, "CASIO", "EX-P700" ,1 }, - { 3178560, "PENTAX", "Optio S" ,1 }, - { 4841984, "PENTAX", "Optio S" ,1 }, - { 6114240, "PENTAX", "Optio S4" ,1 }, /* or S4i, CASIO EX-Z4 */ - { 10702848, "PENTAX", "Optio 750Z" ,1 }, - { 12582980, "Sinar", "" ,0 }, - { 33292868, "Sinar", "" ,0 }, - { 44390468, "Sinar", "" ,0 } }; + { 62464, "Kodak", "DC20" ,0 }, + { 124928, "Kodak", "DC20" ,0 }, + { 1652736, "Kodak", "DCS200" ,0 }, + { 4159302, "Kodak", "C330" ,0 }, + { 4162462, "Kodak", "C330" ,0 }, + { 460800, "Kodak", "C603v" ,0 }, + { 614400, "Kodak", "C603v" ,0 }, + { 6163328, "Kodak", "C603" ,0 }, + { 6166488, "Kodak", "C603" ,0 }, + { 9116448, "Kodak", "C603y" ,0 }, + { 311696, "ST Micro", "STV680 VGA" ,0 }, /* SPYz */ + { 614400, "Kodak", "KAI-0340" ,0 }, + { 787456, "Creative", "PC-CAM 600" ,0 }, + { 1138688, "Minolta", "RD175" ,0 }, + { 3840000, "Foculus", "531C" ,0 }, + { 786432, "AVT", "F-080C" ,0 }, + { 1447680, "AVT", "F-145C" ,0 }, + { 1920000, "AVT", "F-201C" ,0 }, + { 5067304, "AVT", "F-510C" ,0 }, + { 10134608, "AVT", "F-510C" ,0 }, + { 16157136, "AVT", "F-810C" ,0 }, + { 1409024, "Sony", "XCD-SX910CR" ,0 }, + { 2818048, "Sony", "XCD-SX910CR" ,0 }, + { 3884928, "Micron", "2010" ,0 }, + { 6624000, "Pixelink", "A782" ,0 }, + { 13248000, "Pixelink", "A782" ,0 }, + { 6291456, "RoverShot","3320AF" ,0 }, + { 6553440, "Canon", "PowerShot A460" ,0 }, + { 6653280, "Canon", "PowerShot A530" ,0 }, + { 6573120, "Canon", "PowerShot A610" ,0 }, + { 9219600, "Canon", "PowerShot A620" ,0 }, + { 10341600, "Canon", "PowerShot A720" ,0 }, + { 10383120, "Canon", "PowerShot A630" ,0 }, + { 12945240, "Canon", "PowerShot A640" ,0 }, + { 15636240, "Canon", "PowerShot A650" ,0 }, + { 5298000, "Canon", "PowerShot SD300" ,0 }, + { 7710960, "Canon", "PowerShot S3 IS" ,0 }, + { 5939200, "OLYMPUS", "C770UZ" ,0 }, + { 1581060, "NIKON", "E900" ,1 }, /* or E900s,E910 */ + { 2465792, "NIKON", "E950" ,1 }, /* or E800,E700 */ + { 2940928, "NIKON", "E2100" ,1 }, /* or E2500 */ + { 4771840, "NIKON", "E990" ,1 }, /* or E995, Oly C3030Z */ + { 4775936, "NIKON", "E3700" ,1 }, /* or Optio 33WR */ + { 5869568, "NIKON", "E4300" ,1 }, /* or DiMAGE Z2 */ + { 5865472, "NIKON", "E4500" ,1 }, + { 7438336, "NIKON", "E5000" ,1 }, /* or E5700 */ + { 8998912, "NIKON", "COOLPIX S6" ,1 }, + { 1976352, "CASIO", "QV-2000UX" ,1 }, + { 3217760, "CASIO", "QV-3*00EX" ,1 }, + { 6218368, "CASIO", "QV-5700" ,1 }, + { 6054400, "CASIO", "QV-R41" ,1 }, + { 7530816, "CASIO", "QV-R51" ,1 }, + { 7684000, "CASIO", "QV-4000" ,1 }, + { 4948608, "CASIO", "EX-S100" ,1 }, + { 7542528, "CASIO", "EX-Z50" ,1 }, + { 7753344, "CASIO", "EX-Z55" ,1 }, + { 7426656, "CASIO", "EX-P505" ,1 }, + { 9313536, "CASIO", "EX-P600" ,1 }, + { 10979200, "CASIO", "EX-P700" ,1 }, + { 3178560, "PENTAX", "Optio S" ,1 }, + { 4841984, "PENTAX", "Optio S" ,1 }, + { 6114240, "PENTAX", "Optio S4" ,1 }, /* or S4i, CASIO EX-Z4 */ + { 10702848, "PENTAX", "Optio 750Z" ,1 }, + { 12582980, "Sinar", "" ,0 }, + { 33292868, "Sinar", "" ,0 }, + { 44390468, "Sinar", "" ,0 } }; static const char *corp[] = { "Canon", "NIKON", "EPSON", "KODAK", "Kodak", "OLYMPUS", "PENTAX", "MINOLTA", "Minolta", "Konica", "CASIO", "Sinar", "Phase One", @@ -6606,7 +6641,7 @@ void CLASS identify() get2(); raw_width = get2(); raw_height = get2(); - load_raw = nokia_load_raw; + load_raw = &CLASS nokia_load_raw; filters = 0x61616161; } else if (!memcmp (head,"DSC-Image",9)) parse_rollei(); @@ -6673,6 +6708,10 @@ void CLASS identify() &CLASS lossless_jpeg_load_raw : &CLASS canon_compressed_load_raw; if (!strcmp(make,"NIKON") && !load_raw) load_raw = &CLASS nikon_load_raw; + if (!strcmp(make,"CASIO")) { + load_raw = &CLASS packed_12_load_raw; + maximum = 0xf7f; + } /* Set parameters based on camera name (for non-DNG files). */ @@ -6715,6 +6754,14 @@ void CLASS identify() colors = 4; filters = 0x1e4b4e1b; load_raw = &CLASS canon_a5_load_raw; + } else if (!strcmp(model,"PowerShot SD300")) { + height = 1752; + width = 2344; + raw_height = 1766; + raw_width = 2400; + top_margin = 12; + left_margin = 12; + load_raw = &CLASS canon_a5_load_raw; } else if (!strcmp(model,"PowerShot A460")) { height = 1960; width = 2616; @@ -6824,7 +6871,6 @@ void CLASS identify() left_margin = 64; if (unique_id == 0x80000170) adobe_coeff ("Canon","EOS 300D"); - maximum = 0xfa0; } else if (is_canon && raw_width == 3160) { height = 2328; width = 3112; @@ -6853,19 +6899,19 @@ void CLASS identify() width = 3908; top_margin = 18; left_margin = 30; - maximum = 0x3f60; } else if (is_canon && raw_width == 3948) { top_margin = 18; left_margin = 42; height -= 2; if (unique_id == 0x80000236) adobe_coeff ("Canon","EOS 400D"); + if (unique_id == 0x80000254) + adobe_coeff ("Canon","EOS 1000D"); goto canon_cr2; } else if (is_canon && raw_width == 3984) { top_margin = 20; left_margin = 76; height -= 2; - maximum = 0x3bb0; goto canon_cr2; } else if (is_canon && raw_width == 4104) { height = 3024; @@ -6882,12 +6928,10 @@ void CLASS identify() } else if (is_canon && raw_width == 4476) { top_margin = 34; left_margin = 90; - maximum = 0xe6c; goto canon_cr2; } else if (is_canon && raw_width == 5108) { top_margin = 13; left_margin = 98; - maximum = 0xe80; canon_cr2: height -= top_margin; width -= left_margin; @@ -6896,7 +6940,6 @@ canon_cr2: width = 5640; top_margin = 20; left_margin = 62; - maximum = 0x3bb0; } else if (!strcmp(model,"D1")) { cam_mul[0] *= 256/527.0; cam_mul[2] *= 256/317.0; @@ -6908,6 +6951,10 @@ canon_cr2: !strcmp(model,"D80")) { height -= 3; width -= 4; + } else if (!strcmp(model,"D3") || + !strcmp(model,"D700")) { + width -= 4; + left_margin = 2; } else if (!strncmp(model,"D40",3) || !strncmp(model,"D50",3) || !strncmp(model,"D70",3)) { @@ -6917,11 +6964,9 @@ canon_cr2: load_raw = &CLASS nikon_load_raw; raw_width = (width += 3) + 3; } - maximum = 0xf44; } else if (!strcmp(model,"D200")) { left_margin = 1; width -= 4; - maximum = 0xfbc; filters = 0x94949494; } else if (!strncmp(model,"D2H",3)) { left_margin = 6; @@ -6929,10 +6974,6 @@ canon_cr2: } else if (!strncmp(model,"D2X",3)) { if (width == 3264) width -= 32; else width -= 8; - maximum = 0xf35; - } else if (!strcmp(model,"D3")) { - width -= 4; - left_margin = 2; } else if (!strcmp(model,"D300")) { width -= 32; } else if (fsize == 1581060) { @@ -6952,7 +6993,6 @@ canon_cr2: width = 1616; raw_width = 2048; load_raw = &CLASS nikon_e900_load_raw; - maximum = 0x3dd; colors = 4; filters = 0x4b4b4b4b; adobe_coeff ("NIKON","E950"); @@ -7026,7 +7066,6 @@ cp_e2500: } else if (!strcmp(model,"FinePix S5100") || !strcmp(model,"FinePix S5500")) { load_raw = &CLASS unpacked_load_raw; - maximum = 0x3e00; } else if (!strcmp(make,"FUJIFILM")) { if (!strcmp(model+7,"S2Pro")) { strcpy (model+7," S2Pro"); @@ -7063,19 +7102,17 @@ cp_e2500: goto konica_510z; } else if (!strcasecmp(make,"MINOLTA")) { load_raw = &CLASS unpacked_load_raw; - maximum = 0xf7d; + maximum = 0xfff; if (!strncmp(model,"DiMAGE A",8)) { if (!strcmp(model,"DiMAGE A200")) filters = 0x49494949; load_raw = &CLASS packed_12_load_raw; - maximum = model[8] == '1' ? 0xf8b : 0xfff; } else if (!strncmp(model,"ALPHA",5) || !strncmp(model,"DYNAX",5) || !strncmp(model,"MAXXUM",6)) { sprintf (model+20, "DYNAX %-10s", model+6+(model[0]=='M')); adobe_coeff (make, model+20); load_raw = &CLASS packed_12_load_raw; - maximum = 0xffb; } else if (!strncmp(model,"DiMAGE G",8)) { if (model[8] == '4') { height = 1716; @@ -7292,18 +7329,17 @@ konica_400z: top_margin = 13; filters = 0x49494949; } - maximum = 0xf7f0; zero_is_bad = 1; adobe_coeff ("Panasonic","DMC-FZ8"); break; + case 3213: + width -= 27; case 3177: width -= 10; filters = 0x49494949; - maximum = 0xf7fc; zero_is_bad = 1; adobe_coeff ("Panasonic","DMC-L1"); break; case 3304: width -= 16; - maximum = 0xf94c; zero_is_bad = 1; adobe_coeff ("Panasonic","DMC-FZ30"); break; case 3330: @@ -7338,7 +7374,6 @@ fz18: if (height > 2480) case 3880: width -= 22; left_margin = 6; - maximum = 0xf7f0; zero_is_bad = 1; adobe_coeff ("Panasonic","DMC-LX1"); break; case 4290: @@ -7360,12 +7395,10 @@ fz18: if (height > 2480) } else if (!strcmp(make,"OLYMPUS")) { height += height & 1; filters = exif_cfa; - if (!strcmp(model,"E-1") || - !strcmp(model,"E-400")) { - maximum = 0xfff0; + if (load_raw == &CLASS olympus_e410_load_raw) { + black >>= 4; } else if (!strcmp(model,"E-10") || !strncmp(model,"E-20",4)) { - maximum = 0xffc0; black <<= 2; } else if (!strcmp(model,"E-300") || !strcmp(model,"E-500")) { @@ -7378,17 +7411,6 @@ fz18: if (height > 2480) width -= 30; if (load_raw == &CLASS unpacked_load_raw) maximum = 0xf790; - } else if (!strcmp(model,"E-3")) { - maximum = 0xf99; - goto e410; - } else if (!strcmp(model,"E-420")) { - maximum = 0xfd7; - goto e410; - } else if (!strcmp(model,"E-410") || - !strcmp(model,"E-510")) { - maximum = 0xf6a; -e410: load_raw = &CLASS olympus_e410_load_raw; - black >>= 4; } else if (!strcmp(model,"SP550UZ")) { thumb_length = fsize - (thumb_offset = 0xa39800); thumb_height = 480; @@ -7400,7 +7422,6 @@ e410: load_raw = &CLASS olympus_e410_load_raw; filters = 0x61616161; data_offset = 0x1a00; load_raw = &CLASS packed_12_load_raw; - maximum = 0xf1e; } else if (!strcmp(model,"DSC-F828")) { width = 3288; left_margin = 5; @@ -7420,17 +7441,22 @@ e410: load_raw = &CLASS olympus_e410_load_raw; order = 0x4d4d; } else if (!strcmp(model,"DSLR-A100")) { height--; - load_raw = &CLASS sony_arw_load_raw; - maximum = 0xfeb; - } else if (!strcmp(model,"DSLR-A200")) { - height = raw_height += 8; - load_raw = &CLASS sony_arw_load_raw; } else if (!strcmp(model,"DSLR-A350")) { - height = (raw_height += 8) - 4; - load_raw = &CLASS sony_arw_load_raw; - maximum = 0x1ffe; - } else if (!strncmp(model,"P850",4)) { - maximum = 0xf7c; + height -= 4; + } else if (!strcmp(model,"C603v")) { + height = 480; + width = 640; + goto c603v; + } else if (!strcmp(model,"C603y")) { + height = 2134; + width = 2848; +c603v: + filters = 0; + load_raw = &CLASS kodak_yrgb_load_raw; + } else if (!strcmp(model,"C603")) { + raw_height = height = 2152; + raw_width = width = 2864; + goto c603; } else if (!strcmp(model,"C330")) { height = 1744; width = 2336; @@ -7438,6 +7464,7 @@ e410: load_raw = &CLASS olympus_e410_load_raw; raw_width = 2338; top_margin = 33; left_margin = 1; +c603: order = 0x4949; if ((data_offset = fsize - raw_height*raw_width)) { fseek (ifp, 168, SEEK_SET); @@ -7594,60 +7621,47 @@ qt_common: width = 2312; raw_width = 3520; left_margin = 2; - load_raw = &CLASS packed_12_load_raw; - maximum = 0xf7f; } else if (!strcmp(model,"QV-R51")) { height = 1926; width = 2580; raw_width = 3904; - load_raw = &CLASS packed_12_load_raw; - maximum = 0xf7f; pre_mul[0] = 1.340; pre_mul[2] = 1.672; } else if (!strcmp(model,"EX-S100")) { height = 1544; width = 2058; raw_width = 3136; - load_raw = &CLASS packed_12_load_raw; pre_mul[0] = 1.631; pre_mul[2] = 1.106; } else if (!strcmp(model,"EX-Z50")) { height = 1931; width = 2570; raw_width = 3904; - load_raw = &CLASS packed_12_load_raw; - maximum = 0xf7f; pre_mul[0] = 2.529; pre_mul[2] = 1.185; } else if (!strcmp(model,"EX-Z55")) { height = 1960; width = 2570; raw_width = 3904; - load_raw = &CLASS packed_12_load_raw; - maximum = 0xf7f; pre_mul[0] = 1.520; pre_mul[2] = 1.316; } else if (!strcmp(model,"EX-P505")) { height = 1928; width = 2568; raw_width = 3852; - load_raw = &CLASS packed_12_load_raw; + maximum = 0xfff; pre_mul[0] = 2.07; pre_mul[2] = 1.88; } else if (fsize == 9313536) { /* EX-P600 or QV-R61 */ height = 2142; width = 2844; raw_width = 4288; - load_raw = &CLASS packed_12_load_raw; - maximum = 0xf7f; pre_mul[0] = 1.797; pre_mul[2] = 1.219; } else if (!strcmp(model,"EX-P700")) { height = 2318; width = 3082; raw_width = 4672; - load_raw = &CLASS packed_12_load_raw; - maximum = 0xf7f; pre_mul[0] = 1.758; pre_mul[2] = 1.504; } @@ -7665,7 +7679,7 @@ qt_common: dng_skip: if (!load_raw || height < 22) is_raw = 0; #ifdef NO_JPEG - if (load_raw == kodak_jpeg_load_raw) { + if (load_raw == &CLASS kodak_jpeg_load_raw) { fprintf (stderr,_("%s: You must link dcraw with libjpeg!!\n"), ifname); is_raw = 0; } diff --git a/dcraw.changes b/dcraw.changes index 0577c51..d253f67 100644 --- a/dcraw.changes +++ b/dcraw.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Sun Sep 7 22:40:44 CEST 2008 - postadal@suse.cz + +- updated to RCS 1.404 + * Support the Kodak C603, Nikon D700, Canon EOS 1000D, + Canon PowerShot SD300, and Olympus E-520, SONY A300 + * Removed useless code from ppg_interpolate() + * Don't crash on corrupt CR2 files + * Extract the largest JPEG from any X3F file + * Fixed camera WB on the A200 + * Set model-specific saturation levels in adobe_coeff() + ------------------------------------------------------------------- Sun Apr 13 22:57:10 CEST 2008 - postadal@suse.cz diff --git a/dcraw.spec b/dcraw.spec index 120ce20..d535932 100644 --- a/dcraw.spec +++ b/dcraw.spec @@ -1,10 +1,17 @@ # -# spec file for package dcraw (Version 1.401) +# spec file for package dcraw (Version 1.404) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. -# This file and all modifications and additions to the pristine -# package are under the same license as the package itself. # +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + # Please submit bugfixes or comments via http://bugs.opensuse.org/ # @@ -13,7 +20,7 @@ Name: dcraw BuildRequires: libjpeg-devel liblcms-devel -Version: 1.401 +Version: 1.404 Release: 1 License: Any permissive Group: Productivity/Graphics/Convertors @@ -81,6 +88,15 @@ rm -rf $RPM_BUILD_ROOT %doc %_mandir/man*/* %changelog +* Mon Sep 08 2008 postadal@suse.cz +- updated to RCS 1.404 + * Support the Kodak C603, Nikon D700, Canon EOS 1000D, + Canon PowerShot SD300, and Olympus E-520, SONY A300 + * Removed useless code from ppg_interpolate() + * Don't crash on corrupt CR2 files + * Extract the largest JPEG from any X3F file + * Fixed camera WB on the A200 + * Set model-specific saturation levels in adobe_coeff() * Mon Apr 14 2008 postadal@suse.cz - updated to RCS 1.401 * Copy GPS data into thumbnails and TIFF output