├── .gitignore ├── .maven-env ├── .travis.yml ├── LICENSE.txt ├── README.md ├── examples ├── README.txt ├── pom.xml └── src │ └── main │ └── java │ └── it │ └── tidalwave │ └── imageio │ └── example │ └── stats │ └── FocalLengthStats.java ├── functional-tests ├── jse │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── Dummy.java │ │ └── test │ │ └── java │ │ └── it │ │ └── tidalwave │ │ └── imageio │ │ └── rawprocessor │ │ ├── arw │ │ └── ARWProcessorTest.java │ │ ├── cr2 │ │ └── CR2ProcessorTest.java │ │ ├── crw │ │ └── CRWProcessorTest.java │ │ ├── dng │ │ └── DNGProcessorTest.java │ │ ├── mrw │ │ └── MRWProcessorTest.java │ │ ├── nef │ │ └── NEFProcessorTest.java │ │ ├── orf │ │ └── ORFProcessorTest.java │ │ ├── pef │ │ └── PEFProcessorTest.java │ │ └── raf │ │ └── RAFProcessorTest.java └── tests │ └── pom.xml ├── modules ├── codec │ ├── LICENSE.txt │ ├── TODO.old-build.xml │ ├── nb-configuration.xml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ ├── CanonCRWMakerNote.properties │ │ │ ├── TIFF.properties │ │ │ └── it │ │ │ │ └── tidalwave │ │ │ │ └── imageio │ │ │ │ ├── arw │ │ │ │ ├── ARWImageReader.java │ │ │ │ ├── ARWImageReaderSpi.java │ │ │ │ ├── ARWMakerNote.java │ │ │ │ ├── ARWMetadata.java │ │ │ │ └── ARWRasterReader.java │ │ │ │ ├── cr2 │ │ │ │ ├── CR2ImageReader.java │ │ │ │ ├── CR2ImageReaderSpi.java │ │ │ │ ├── CR2Metadata.java │ │ │ │ ├── CR2RasterReader.java │ │ │ │ ├── CR2SensorInfo.java │ │ │ │ └── CanonCR2MakerNote.java │ │ │ │ ├── crw │ │ │ │ ├── CIFFTag.java │ │ │ │ ├── CRWImageInputStream.java │ │ │ │ ├── CRWImageReader.java │ │ │ │ ├── CRWImageReaderSpi.java │ │ │ │ ├── CRWMetadata.java │ │ │ │ ├── CRWRasterReader.java │ │ │ │ └── CanonCRWMakerNote.java │ │ │ │ ├── dcr │ │ │ │ ├── DCRImageReader.java │ │ │ │ ├── DCRImageReaderSpi.java │ │ │ │ ├── DCRMetadata.java │ │ │ │ ├── DCRRasterReader.java │ │ │ │ └── KodakMakerNote.java │ │ │ │ ├── decoder │ │ │ │ ├── HuffmannDecoder.java │ │ │ │ └── LosslessJPEGDecoder.java │ │ │ │ ├── dng │ │ │ │ ├── DNGImageReader.java │ │ │ │ ├── DNGImageReaderSpi.java │ │ │ │ ├── DNGMetadata.java │ │ │ │ └── DNGRasterReader.java │ │ │ │ ├── io │ │ │ │ ├── BitReader.java │ │ │ │ ├── FastBitReader.java │ │ │ │ ├── FileImageInputStream2.java │ │ │ │ ├── FileImageInputStream2Spi.java │ │ │ │ ├── RAWImageInputStream.java │ │ │ │ ├── RAWImageInputStreamImpl.java │ │ │ │ ├── SixteenBitsReader.java │ │ │ │ └── TwelveBitsReader.java │ │ │ │ ├── makernote │ │ │ │ └── LeicaMakerNote.java │ │ │ │ ├── minolta │ │ │ │ └── MinoltaRawData.java │ │ │ │ ├── mrw │ │ │ │ ├── MRWHeaderProcessor.java │ │ │ │ ├── MRWImageReader.java │ │ │ │ ├── MRWImageReaderSpi.java │ │ │ │ ├── MRWMetadata.java │ │ │ │ ├── MRWRasterReader.java │ │ │ │ └── MinoltaMakerNote.java │ │ │ │ ├── nef │ │ │ │ ├── NDFRasterReader.java │ │ │ │ ├── NEFCompressionData.java │ │ │ │ ├── NEFHeaderProcessor.java │ │ │ │ ├── NEFImageReader.java │ │ │ │ ├── NEFImageReaderSpi.java │ │ │ │ ├── NEFMetadata.java │ │ │ │ ├── NEFRasterReader.java │ │ │ │ ├── NEFWhiteBalanceInfo.java │ │ │ │ ├── NikonLensInfo.java │ │ │ │ ├── NikonMakerNote3.java │ │ │ │ ├── RasterReaderCoolpix.java │ │ │ │ ├── RasterReader_NIKON_D100.java │ │ │ │ └── RasterReader_NIKON_D3.java │ │ │ │ ├── orf │ │ │ │ ├── CSeriesRasterReader.java │ │ │ │ ├── CameraSettings.java │ │ │ │ ├── E300RasterReader.java │ │ │ │ ├── E410RasterReader.java │ │ │ │ ├── Equipment.java │ │ │ │ ├── FocusInfo.java │ │ │ │ ├── ImageProcessing.java │ │ │ │ ├── ORFImageReader.java │ │ │ │ ├── ORFImageReaderSpi.java │ │ │ │ ├── ORFMetadata.java │ │ │ │ ├── ORFRasterReader.java │ │ │ │ ├── OlympusMakerNote.java │ │ │ │ ├── RawDevelopment.java │ │ │ │ └── SPRasterReader.java │ │ │ │ ├── pef │ │ │ │ ├── PEFDecoder.java │ │ │ │ ├── PEFImageReader.java │ │ │ │ ├── PEFImageReaderSpi.java │ │ │ │ ├── PEFMetadata.java │ │ │ │ ├── PEFRasterReader.java │ │ │ │ └── PentaxMakerNote.java │ │ │ │ ├── raf │ │ │ │ ├── FujiMakerNote.java │ │ │ │ ├── FujiRawData.java │ │ │ │ ├── FujiTable1.java │ │ │ │ ├── RAFHeaderProcessor.java │ │ │ │ ├── RAFImageReader.java │ │ │ │ ├── RAFImageReaderSpi.java │ │ │ │ ├── RAFMetadata.java │ │ │ │ └── RAFRasterReader.java │ │ │ │ ├── raw │ │ │ │ ├── AbstractTag.java │ │ │ │ ├── Directory.java │ │ │ │ ├── HeaderProcessor.java │ │ │ │ ├── Packed12RasterReader.java │ │ │ │ ├── PostProcessor.java │ │ │ │ ├── RAWImageReadParam.java │ │ │ │ ├── RAWImageReader.java │ │ │ │ ├── RAWImageReaderSpiSupport.java │ │ │ │ ├── RAWImageReaderSupport.java │ │ │ │ ├── RAWMetadataSupport.java │ │ │ │ ├── RasterReader.java │ │ │ │ ├── Source.java │ │ │ │ ├── TagRational.java │ │ │ │ ├── TagRegistry.java │ │ │ │ └── Version.java │ │ │ │ ├── rawprocessor │ │ │ │ └── RAWProcessorInstallerSpi.java │ │ │ │ ├── srf │ │ │ │ ├── SRFImageInputStream.java │ │ │ │ ├── SRFImageReader.java │ │ │ │ ├── SRFImageReaderSpi.java │ │ │ │ ├── SRFMetadata.java │ │ │ │ ├── SRFRasterReader.java │ │ │ │ ├── SonyDecipher.java │ │ │ │ ├── SonyMakerNote.java │ │ │ │ ├── SonySRF0.java │ │ │ │ ├── SonySRF1.java │ │ │ │ ├── SonySRF2.java │ │ │ │ ├── SonySRF3.java │ │ │ │ ├── SonySRF4.java │ │ │ │ ├── SonySRF5.java │ │ │ │ └── SonySRF6.java │ │ │ │ ├── tiff │ │ │ │ ├── IFD.java │ │ │ │ ├── IFDSupport.java │ │ │ │ ├── TIFFImageReaderSupport.java │ │ │ │ ├── TIFFMetadataSupport.java │ │ │ │ ├── TIFFTag.java │ │ │ │ └── ThumbnailLoader.java │ │ │ │ └── util │ │ │ │ ├── DefaultLookup.java │ │ │ │ ├── DefaultingLookup.java │ │ │ │ ├── Logger.java │ │ │ │ ├── Lookup.java │ │ │ │ └── VersionLoader.java │ │ ├── metadata │ │ │ ├── CanonCR2MakerNote.xml │ │ │ ├── CanonCRWMakerNote.xml │ │ │ ├── Directory.xsd │ │ │ ├── FujiMakerNote.xml │ │ │ ├── KodakMakerNote.xml │ │ │ ├── LeicaMakerNote.xml │ │ │ ├── MinoltaMakerNote.xml │ │ │ ├── Nikon3MakerNote.xml │ │ │ ├── OlympusCameraSettings.xml │ │ │ ├── OlympusEquipment.xml │ │ │ ├── OlympusFocusInfo.xml │ │ │ ├── OlympusImageProcessing.xml │ │ │ ├── OlympusMakerNote.xml │ │ │ ├── OlympusRawDevelopment.xml │ │ │ ├── PentaxMakerNote.xml │ │ │ ├── SonyMakerNote.xml │ │ │ ├── html │ │ │ │ ├── CanonCR2MakerNote.html │ │ │ │ ├── CanonCRWMakerNote.html │ │ │ │ ├── KodakMakerNote.html │ │ │ │ ├── MinoltaMakerNote.html │ │ │ │ ├── Nikon3MakerNote.html │ │ │ │ ├── OlympusMakerNote.html │ │ │ │ ├── PentaxMakerNote.html │ │ │ │ └── SonyMakerNote.html │ │ │ └── xslt │ │ │ │ ├── DirectoryToJava.xslt │ │ │ │ ├── DirectoryToTable.xslt │ │ │ │ └── DirectoryToText.xslt │ │ ├── resources │ │ │ ├── META-INF │ │ │ │ └── services │ │ │ │ │ ├── javax.imageio.spi.ImageInputStreamSpi │ │ │ │ │ └── javax.imageio.spi.ImageReaderSpi │ │ │ └── it │ │ │ │ └── tidalwave │ │ │ │ └── imageio │ │ │ │ ├── cr2 │ │ │ │ └── CanonLens.properties │ │ │ │ ├── crw │ │ │ │ └── CanonLens.properties │ │ │ │ ├── nef │ │ │ │ └── NikonLens.properties │ │ │ │ └── raw │ │ │ │ └── version.properties │ │ └── scripts │ │ │ └── generate-sources.xml │ │ ├── test │ │ ├── java │ │ │ └── it │ │ │ │ └── tidalwave │ │ │ │ ├── imageio │ │ │ │ ├── arw │ │ │ │ │ └── ARWImageReaderTest.java │ │ │ │ ├── cr2 │ │ │ │ │ └── CR2ImageReaderTest.java │ │ │ │ ├── crw │ │ │ │ │ └── CRWImageReaderTest.java │ │ │ │ ├── dng │ │ │ │ │ └── DNGImageReaderTest.java │ │ │ │ ├── io │ │ │ │ │ └── BitReaderTest.java │ │ │ │ ├── mrw │ │ │ │ │ └── MRWImageReaderTest.java │ │ │ │ ├── nef │ │ │ │ │ └── NEFImageReaderTest.java │ │ │ │ ├── orf │ │ │ │ │ └── ORFImageReaderTest.java │ │ │ │ ├── pef │ │ │ │ │ └── PEFImageReaderTest.java │ │ │ │ ├── raf │ │ │ │ │ └── RAFImageReaderTest.java │ │ │ │ ├── raw │ │ │ │ │ └── SourceTest.java │ │ │ │ ├── srf │ │ │ │ │ └── SRFImageReaderTest.java │ │ │ │ └── test │ │ │ │ │ ├── ExpectedResults.java │ │ │ │ │ ├── ImageReaderTestSupport.java │ │ │ │ │ ├── NewImageReaderTestSupport.java │ │ │ │ │ └── TestSupport.java │ │ │ │ └── thesefoolishthings │ │ │ │ └── junit │ │ │ │ ├── MultiThreadHandler.java │ │ │ │ ├── MyParameterized.java │ │ │ │ └── ParallelRunnerScheduler.java │ │ └── resources │ │ │ └── it │ │ │ └── tidalwave │ │ │ └── imageio │ │ │ └── test │ │ │ └── log.properties │ │ └── tool │ │ └── IFDGenerator.java ├── jrawio-all │ └── pom.xml ├── jrawio-test │ ├── LICENSE.txt │ ├── README.txt │ ├── Supported.html │ ├── findvalues.sh │ ├── samples │ │ ├── html │ │ │ ├── 100_0043.CRW.html │ │ │ ├── 1ds2_0000_1253.CR2.html │ │ │ ├── 20050527-0104.NDF.html │ │ │ ├── 350d_0000_0103.CR2.html │ │ │ ├── DSC07598.SRF.html │ │ │ ├── DSC_0001-SavedAsNef.nef.html │ │ │ ├── DSC_0208.NEF.html │ │ │ ├── DSC_3616.NEF.html │ │ │ ├── IMGP3469.PEF.html │ │ │ ├── L2060314.DNG.html │ │ │ ├── P3140074.ORF.html │ │ │ ├── PENTAX-ISD.PEF.html │ │ │ ├── Silver.DCR.html │ │ │ ├── _D6H0092.CR2.html │ │ │ ├── _DSC0255.NEF.html │ │ │ ├── _DSC7001.NEF.html │ │ │ ├── d70_0000_0614.DNG.html │ │ │ ├── debconf5_hut.cr2.html │ │ │ ├── pc260025.orf.html │ │ │ └── pict0340.mrw.html │ │ ├── xml │ │ │ ├── 100_0043.CRW.xml │ │ │ ├── 1ds2_0000_1253.CR2.xml │ │ │ ├── 20050527-0104.NDF.xml │ │ │ ├── 350d_0000_0103.CR2.xml │ │ │ ├── DSC07598.SRF.xml │ │ │ ├── DSC_0001-SavedAsNef.nef.xml │ │ │ ├── DSC_0208.NEF.xml │ │ │ ├── DSC_3616.NEF.xml │ │ │ ├── IMGP3469.PEF.xml │ │ │ ├── L2060314.DNG.xml.gz │ │ │ ├── P3140074.ORF.xml │ │ │ ├── PENTAX-ISD.PEF.xml │ │ │ ├── Silver.DCR.xml │ │ │ ├── _D6H0092.CR2.xml │ │ │ ├── _DSC0255.NEF.xml │ │ │ ├── _DSC7001.NEF.xml │ │ │ ├── d70_0000_0614.DNG.xml │ │ │ ├── debconf5_hut.cr2.xml │ │ │ ├── pc260025.orf.xml │ │ │ ├── pict0340.mrw.xml │ │ │ └── x.txt │ │ └── xslt │ │ │ └── MetadataToTable.xslt │ ├── src │ │ ├── main │ │ │ └── java │ │ │ │ ├── Dump.java │ │ │ │ └── files │ │ └── test │ │ │ └── java │ │ │ └── it │ │ │ └── tidalwave │ │ │ └── imageio │ │ │ └── test │ │ │ ├── ImageReaderTest.java │ │ │ ├── TestContext.java │ │ │ └── util │ │ │ ├── DirectoryTester.java │ │ │ ├── FailureReporter.java │ │ │ ├── PixelSpeed.java │ │ │ ├── PropertyTracker.java │ │ │ └── Report.java │ └── test-log.properties └── processor │ ├── LICENSE.txt │ ├── demo.sh │ ├── nb-configuration.xml │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── it │ │ │ └── tidalwave │ │ │ └── imageio │ │ │ ├── nef │ │ │ └── NikonCaptureEditorMetadata.java │ │ │ └── rawprocessor │ │ │ ├── ColorMatrix.java │ │ │ ├── Curve.java │ │ │ ├── Operation.java │ │ │ ├── OperationSupport.java │ │ │ ├── PipelineArtifact.java │ │ │ ├── RAWProcessor.java │ │ │ ├── RAWProcessorInstaller.java │ │ │ ├── Version.java │ │ │ ├── arw │ │ │ ├── ARWCurveOperation.java │ │ │ ├── ARWProcessor.java │ │ │ ├── ARWSizeOperation.java │ │ │ └── ARWWhiteBalanceOperation.java │ │ │ ├── cr2 │ │ │ ├── CR2ColorConversionOperation.java │ │ │ ├── CR2CurveOperation.java │ │ │ ├── CR2Processor.java │ │ │ ├── CR2SizeOperation.java │ │ │ └── CR2WhiteBalanceOperation.java │ │ │ ├── crw │ │ │ ├── CRWColorConversionOperation.java │ │ │ ├── CRWCurveOperation.java │ │ │ ├── CRWProcessor.java │ │ │ ├── CRWSizeOperation.java │ │ │ └── CRWWhiteBalanceOperation.java │ │ │ ├── demosaic │ │ │ ├── BayerInfo.java │ │ │ ├── BayerInfo_BGGR.java │ │ │ ├── BayerInfo_GBRG.java │ │ │ ├── BayerInfo_GRBG.java │ │ │ ├── BayerInfo_RGGB.java │ │ │ ├── BilinearDemosaicingFilter.java │ │ │ ├── DemosaicFilterProcessor.java │ │ │ ├── DemosaicingFilter.java │ │ │ └── PixelGroupingDemosaicingFilter.java │ │ │ ├── dng │ │ │ ├── DNGColorConversionOperation.java │ │ │ ├── DNGCurveOperation.java │ │ │ ├── DNGProcessor.java │ │ │ ├── DNGSizeOperation.java │ │ │ └── DNGWhiteBalanceOperation.java │ │ │ ├── mrw │ │ │ ├── MRWCurveOperation.java │ │ │ ├── MRWProcessor.java │ │ │ ├── MRWSizeOperation.java │ │ │ └── MRWWhiteBalanceOperation.java │ │ │ ├── nef │ │ │ ├── NEFColorConversionOperation.java │ │ │ ├── NEFCurveOperation.java │ │ │ ├── NEFExposureOperation.java │ │ │ ├── NEFProcessor.java │ │ │ ├── NEFRotateOperation.java │ │ │ ├── NEFSizeOperation.java │ │ │ └── NEFWhiteBalanceOperation.java │ │ │ ├── orf │ │ │ ├── ORFColorConversionOperation.java │ │ │ ├── ORFCurveOperation.java │ │ │ ├── ORFProcessor.java │ │ │ ├── ORFSizeOperation.java │ │ │ └── ORFWhiteBalanceOperation.java │ │ │ ├── pef │ │ │ ├── PEFCurveOperation.java │ │ │ ├── PEFProcessor.java │ │ │ ├── PEFSizeOperation.java │ │ │ └── PEFWhiteBalanceOperation.java │ │ │ ├── raf │ │ │ ├── RAFCurveOperation.java │ │ │ ├── RAFDemosaicOperation.java │ │ │ ├── RAFProcessor.java │ │ │ ├── RAFRotateOperation.java │ │ │ ├── RAFSizeOperation.java │ │ │ └── RAFWhiteBalanceOperation.java │ │ │ ├── raw │ │ │ ├── ColorConversionOperation.java │ │ │ ├── ColorProfileOperation.java │ │ │ ├── CurveOperation.java │ │ │ ├── DemosaicOperation.java │ │ │ ├── ExposureOperation.java │ │ │ ├── RotateOperation.java │ │ │ ├── SharpenOperation.java │ │ │ ├── SizeOperation.java │ │ │ └── WhiteBalanceOperation.java │ │ │ └── srf │ │ │ └── SRFProcessor.java │ ├── nbm │ │ └── manifest.mf │ └── resources │ │ └── it │ │ └── tidalwave │ │ └── imageio │ │ └── rawprocessor │ │ ├── nef │ │ ├── NEFColorConversionOperation.properties │ │ └── NEFSizeOperation.properties │ │ └── version.properties │ └── test │ └── resources │ └── it │ └── tidalwave │ └── imageio │ └── log.properties ├── nbactions.xml ├── pom.xml └── src ├── assemble ├── bin.xml └── project.xml └── header ├── header.txt ├── javadoc.xml └── xml.xml /.gitignore: -------------------------------------------------------------------------------- 1 | target/ 2 | .repository 3 | .description 4 | .classpath 5 | .project 6 | .settings 7 | release.properties 8 | .orig.* 9 | .orig 10 | .chg.* 11 | .rej 12 | .DS_Store 13 | -------------------------------------------------------------------------------- /.maven-env: -------------------------------------------------------------------------------- 1 | JAVA_HOME=$JAVA8_ORACLE_HOME 2 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: java 2 | jdk: 3 | - oraclejdk8 4 | script: mvn install -B -Pit.tidalwave-ci-v1 -DskipTests 5 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 2 | =============================================================== 3 | 4 | Copyright (C) 2003 - 2016 by Tidalwave s.a.s. (http://www.tidalwave.it) 5 | http://jrawio.tidalwave.it 6 | 7 | Licensed under the Apache License, Version 2.0 (the "License"); 8 | you may not use this file except in compliance with the License. 9 | You may obtain a copy of the License at 10 | 11 | http://www.apache.org/licenses/LICENSE-2.0 12 | 13 | Unless required by applicable law or agreed to in writing, software 14 | distributed under the License is distributed on an "AS IS" BASIS, 15 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | See the License for the specific language governing permissions and 17 | limitations under the License. 18 | 19 | Id: TIFFTag.java,v 4612f659b563 2009/08/08 20:25:04 fabrizio $ 20 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![Maven Central](https://img.shields.io/maven-central/v/org.rawdarkroom/jrawio.svg) 2 | [![Build Status](https://img.shields.io/jenkins/s/http/services.tidalwave.it/ci/jrawio_Build_from_Scratch.svg)](http://services.tidalwave.it/ci/view/jrawio) 3 | [![Test Status](https://img.shields.io/jenkins/t/http/services.tidalwave.it/ci/jrawio.svg)](http://services.tidalwave.it/ci/view/jrawio) 4 | [![Coverage](https://img.shields.io/jenkins/c/http/services.tidalwave.it/ci/jrawio.svg)](http://services.tidalwave.it/ci/view/jrawio) 5 | 6 | jrawio 7 | ================================ 8 | 9 | jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 10 | 11 | 12 | Bootstrapping 13 | ------------- 14 | 15 | In order to build the project, run from the command line: 16 | 17 | ```mvn -DskipTests``` 18 | 19 | The project can be opened and built by a recent version of the NetBeans, Eclipse or Idea IDEs. 20 | 21 | 22 | Documentation 23 | ------------- 24 | 25 | More information can be found on the [homepage](http://jrawio.rawdarkroom.org) of the project. 26 | 27 | 28 | Where can I get the latest release? 29 | ----------------------------------- 30 | You can download source and binaries from the [download page](https://bitbucket.org/tidalwave/jrawio-src/src). 31 | 32 | Alternatively you can pull it from the central Maven repositories: 33 | 34 | ```xml 35 | 36 | org.rawdarkroom 37 | jrawio 38 | -- version -- 39 | 40 | ``` 41 | 42 | 43 | Contributing 44 | ------------ 45 | 46 | We accept pull requests via Bitbucket or GitHub. 47 | 48 | There are some guidelines which will make applying pull requests easier for us: 49 | 50 | * No tabs! Please use spaces for indentation. 51 | * Respect the code style. 52 | * Create minimal diffs - disable on save actions like reformat source code or organize imports. If you feel the source 53 | ode should be reformatted create a separate PR for this change. 54 | * Provide TestNG tests for your changes and make sure your changes don't break any existing tests by running 55 | ```mvn clean test```. 56 | 57 | If you plan to contribute on a regular basis, please consider filing a contributor license agreement. Contact us for 58 | more information 59 | 60 | 61 | License 62 | ------- 63 | Code is released under the [Apache Licence v2](https://www.apache.org/licenses/LICENSE-2.0.txt). 64 | 65 | 66 | Additional Resources 67 | -------------------- 68 | 69 | * [Tidalwave Homepage](http://tidalwave.it) 70 | * [Project Issue Tracker (Jira)](http://services.tidalwave.it/jira/browse/JRW) 71 | * [Project Continuous Integration (Jenkins)](http://services.tidalwave.it/ci/view/jrawio) 72 | -------------------------------------------------------------------------------- /examples/README.txt: -------------------------------------------------------------------------------- 1 | ==== 2 | 3 | jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | 6 | ********************************************************************************************************************** 7 | 8 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | the License. You may obtain a copy of the License at 10 | 11 | http://www.apache.org/licenses/LICENSE-2.0 12 | 13 | Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | specific language governing permissions and limitations under the License. 16 | 17 | ********************************************************************************************************************** 18 | 19 | WWW: http://jrawio.rawdarkroom.org 20 | SCM: https://kenai.com/hg/jrawio~src 21 | 22 | ==== 23 | 24 | To run the examples: 25 | 26 | mvn install exec:java -Dexec.mainClass=it.tidalwave.imageio.example.stats.FocalLengthStats -Dexec.args="/path/to/photos stats.txt" 27 | -------------------------------------------------------------------------------- /examples/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | 7 | org.rawdarkroom 8 | jrawio 9 | 1.6.1-SNAPSHOT 10 | ../../pom.xml 11 | 12 | 13 | examples 14 | jar 15 | jrawio - examples 16 | 17 | 18 | 19 | org.rawdarkroom 20 | it.tidalwave.imageio.raw 21 | 22 | 23 | com.google.code.findbugs 24 | jsr305 25 | 26 | 27 | commons-io 28 | commons-io 29 | 30 | 31 | 32 | 33 | 34 | 35 | maven-deploy-plugin 36 | 37 | true 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /functional-tests/jse/src/main/java/Dummy.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | public class Dummy 24 | { 25 | } 26 | -------------------------------------------------------------------------------- /functional-tests/tests/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | 7 | org.rawdarkroom 8 | jrawio 9 | 1.7-ALPHA-3-SNAPSHOT 10 | ../../pom.xml 11 | 12 | 13 | functional-tests 14 | jar 15 | jrawio - Functional Tests 16 | 17 | 18 | 19 | org.rawdarkroom 20 | it.tidalwave.imageio.raw 21 | 22 | 30 | 31 | org.rawdarkroom 32 | codec 33 | tests 34 | 35 | 36 | junit 37 | junit 38 | 39 | 40 | 41 | 42 | 43 | 44 | maven-deploy-plugin 45 | 46 | true 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /modules/codec/LICENSE.txt: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * 3 | * jrawio - a Java(TM) ImageIO API Spi Provider for RAW files 4 | * ========================================================== 5 | * 6 | * Copyright (C) 2003 - 2016 by Fabrizio Giudici 7 | * Project home page: http://jrawio.tidalwave.it 8 | * 9 | ******************************************************************************* 10 | * 11 | * Licensed under the Apache License, Version 2.0 (the "License"); 12 | * you may not use this file except in compliance with the License. 13 | * You may obtain a copy of the License at 14 | * 15 | * http://www.apache.org/licenses/LICENSE-2.0 16 | * 17 | * Unless required by applicable law or agreed to in writing, software 18 | * distributed under the License is distributed on an "AS IS" BASIS, 19 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 20 | * See the License for the specific language governing permissions and 21 | * limitations under the License. 22 | * 23 | ******************************************************************************* 24 | * 25 | * $Id: $ 26 | * 27 | ******************************************************************************/ 28 | -------------------------------------------------------------------------------- /modules/codec/TODO.old-build.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 25 | 26 | 44 | 45 | 46 | 47 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /modules/codec/nb-configuration.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 25 | 31 | 32 | 38 | all 39 | 40 | 41 | -------------------------------------------------------------------------------- /modules/codec/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | 7 | org.rawdarkroom 8 | jrawio 9 | 1.7-ALPHA-3-SNAPSHOT 10 | ../../pom.xml 11 | 12 | 13 | codec 14 | jar 15 | jrawio - codec 16 | 17 | 18 | 19 | 20 | org.apache.maven.plugins 21 | maven-antrun-plugin 22 | 23 | 24 | ant 25 | ant-trax 26 | 1.6.5 27 | 28 | 29 | 30 | 31 | generate-sources 32 | 33 | 34 | 35 | 36 | 37 | 38 | run 39 | 40 | 41 | 42 | 43 | 44 | 45 | org.codehaus.mojo 46 | build-helper-maven-plugin 47 | 48 | 49 | attach-generated-sources 50 | generate-sources 51 | 52 | add-source 53 | 54 | 55 | 56 | target/src-generated 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /modules/codec/src/main/java/it/tidalwave/imageio/arw/ARWMakerNote.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.arw; 24 | 25 | import javax.annotation.Nonnull; 26 | import java.io.IOException; 27 | import it.tidalwave.imageio.io.RAWImageInputStream; 28 | import it.tidalwave.imageio.tiff.IFDSupport; 29 | 30 | /*********************************************************************************************************************** 31 | * 32 | * @author Fabrizio Giudici 33 | * @version $Id$ 34 | * 35 | **********************************************************************************************************************/ 36 | public class ARWMakerNote extends IFDSupport 37 | { 38 | private static final long serialVersionUID = 4019349837473239457L; 39 | 40 | @Override 41 | public void loadAll (@Nonnull final RAWImageInputStream iis, final long offset) 42 | throws IOException 43 | { 44 | // TODO it's embeedded as UNDEFINED[xxx] in EXIF.MakerNote 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /modules/codec/src/main/java/it/tidalwave/imageio/cr2/CR2SensorInfo.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.cr2; 24 | 25 | import javax.annotation.Nonnegative; 26 | import javax.annotation.Nonnull; 27 | 28 | /*********************************************************************************************************************** 29 | * 30 | * @author fritz 31 | * @version $Id$ 32 | * 33 | **********************************************************************************************************************/ 34 | public class CR2SensorInfo 35 | { 36 | private final @Nonnull int[] buffer; 37 | 38 | protected CR2SensorInfo (final @Nonnull int[] buffer) 39 | { 40 | this.buffer = buffer; 41 | } 42 | 43 | @Nonnegative 44 | public int getWidth() 45 | { 46 | return buffer[1]; 47 | } 48 | 49 | @Nonnegative 50 | public int getHeight() 51 | { 52 | return buffer[2]; 53 | } 54 | 55 | @Nonnegative 56 | public int getCropLeft() 57 | { 58 | return buffer[5]; 59 | } 60 | 61 | @Nonnegative 62 | public int getCropTop() 63 | { 64 | return buffer[6]; 65 | } 66 | 67 | @Nonnegative 68 | public int getCropRight() 69 | { 70 | return buffer[7]; 71 | } 72 | 73 | @Nonnegative 74 | public int getCropBottom() 75 | { 76 | return buffer[8]; 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /modules/codec/src/main/java/it/tidalwave/imageio/dcr/KodakMakerNote.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.dcr; 24 | 25 | /*********************************************************************************************************************** 26 | * 27 | * @author Fabrizio Giudici 28 | * @version $Id$ 29 | * 30 | **********************************************************************************************************************/ 31 | public class KodakMakerNote extends KodakMakerNoteSupport 32 | { 33 | private final static long serialVersionUID = 6357805620960118907L; 34 | } 35 | -------------------------------------------------------------------------------- /modules/codec/src/main/java/it/tidalwave/imageio/makernote/LeicaMakerNote.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.makernote; 24 | 25 | import javax.annotation.Nonnull; 26 | import java.io.IOException; 27 | import it.tidalwave.imageio.io.RAWImageInputStream; 28 | import it.tidalwave.imageio.util.Logger; 29 | 30 | /*********************************************************************************************************************** 31 | * 32 | * @author Fabrizio Giudici 33 | * @version $Id$ 34 | * 35 | **********************************************************************************************************************/ 36 | public class LeicaMakerNote extends LeicaMakerNoteSupport 37 | { 38 | private final static String CLASS = LeicaMakerNote.class.getName(); 39 | private final static Logger logger = Logger.getLogger(CLASS); 40 | private final static long serialVersionUID = 435098698732458972L; 41 | 42 | @Override 43 | public void loadAll (final @Nonnull RAWImageInputStream iis, final long offset) 44 | throws IOException 45 | { 46 | logger.fine("loadAll(%s, %d)", iis, offset); 47 | final byte[] buffer = new byte[8]; 48 | iis.seek(offset); 49 | iis.readFully(buffer); 50 | // logger.finer(">>>> header: ", new String(buffer, 0)); // TODO: should be LEICA and zeros 51 | super.loadAll(iis, offset + buffer.length); 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /modules/codec/src/main/java/it/tidalwave/imageio/mrw/MRWRasterReader.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.mrw; 24 | 25 | import javax.annotation.Nonnegative; 26 | import javax.annotation.Nonnull; 27 | import java.awt.image.WritableRaster; 28 | import it.tidalwave.imageio.io.RAWImageInputStream; 29 | import it.tidalwave.imageio.raw.RasterReader; 30 | 31 | /*********************************************************************************************************************** 32 | * 33 | * This class implements the MRF (Minolta raw Format) raster loading. 34 | * 35 | * @author Fabrizio Giudici 36 | * @version $Id$ 37 | * 38 | **********************************************************************************************************************/ 39 | public class MRWRasterReader extends RasterReader 40 | { 41 | @Override 42 | protected void selectBitReader (@Nonnull final RAWImageInputStream iis, 43 | @Nonnull final WritableRaster raster, 44 | @Nonnegative final int bitsPerSample) 45 | { 46 | iis.selectBitReader(-1, 0); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /modules/codec/src/main/java/it/tidalwave/imageio/mrw/MinoltaMakerNote.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.mrw; 24 | 25 | /*********************************************************************************************************************** 26 | * 27 | * @author Fabrizio Giudici 28 | * @version $Id$ 29 | * 30 | **********************************************************************************************************************/ 31 | public class MinoltaMakerNote extends MinoltaMakerNoteSupport 32 | { 33 | private final static long serialVersionUID = 2304803943960118907L; 34 | } 35 | -------------------------------------------------------------------------------- /modules/codec/src/main/java/it/tidalwave/imageio/nef/NEFHeaderProcessor.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.nef; 24 | 25 | import javax.annotation.Nonnull; 26 | import java.io.IOException; 27 | import it.tidalwave.imageio.raw.HeaderProcessor; 28 | import it.tidalwave.imageio.io.RAWImageInputStream; 29 | 30 | /*********************************************************************************************************************** 31 | * 32 | * @author Fabrizio Giudici 33 | * @version $Id$ 34 | * 35 | **********************************************************************************************************************/ 36 | public class NEFHeaderProcessor extends HeaderProcessor 37 | { 38 | public static final int NDF_OFFSET = 12; 39 | 40 | private boolean isNDF; 41 | 42 | /******************************************************************************************************************* 43 | * 44 | * @param iis 45 | * @throws IOException 46 | * 47 | *******************************************************************************/ 48 | @Override 49 | public void process (@Nonnull final RAWImageInputStream iis) 50 | throws IOException 51 | { 52 | iis.mark(); 53 | byte[] buffer = new byte[NDF_OFFSET]; 54 | iis.seek(0); 55 | iis.readFully(buffer); 56 | isNDF = new String(buffer, 0, 3).equals("NDF"); 57 | iis.reset(); 58 | } 59 | 60 | /******************************************************************************************************************* 61 | * 62 | * @inheritDoc 63 | * 64 | *******************************************************************************/ 65 | @Override 66 | public int getOffset() 67 | { 68 | return isNDF ? NDF_OFFSET : 0; 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /modules/codec/src/main/java/it/tidalwave/imageio/nef/RasterReaderCoolpix.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.nef; 24 | 25 | import javax.annotation.Nonnegative; 26 | 27 | /*********************************************************************************************************************** 28 | * 29 | * @author Fabrizio Giudici 30 | * @version $Id$ 31 | * 32 | **********************************************************************************************************************/ 33 | public class RasterReaderCoolpix extends NEFRasterReader 34 | { 35 | /******************************************************************************************************************* 36 | * 37 | * @inheritDoc 38 | * 39 | * Coolpix rasters are interlaced. 40 | * 41 | *******************************************************************************/ 42 | @Override 43 | @Nonnegative 44 | protected int getRow (@Nonnegative final int y, @Nonnegative final int height) 45 | { 46 | return (y < (height / 2)) ? (y * 2) : ((y - height / 2) * 2 + 1); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /modules/codec/src/main/java/it/tidalwave/imageio/nef/RasterReader_NIKON_D3.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.nef; 24 | 25 | import javax.annotation.Nonnull; 26 | import java.awt.image.WritableRaster; 27 | import java.io.IOException; 28 | import it.tidalwave.imageio.io.RAWImageInputStream; 29 | import it.tidalwave.imageio.raw.RAWImageReaderSupport; 30 | 31 | /*********************************************************************************************************************** 32 | * 33 | * This class specializes a PixelLoader for the Nikon D100. There is some 34 | * trickery to understand if a D100 NEF is compressed and in some cases there 35 | * are bits to skip while reading the data. 36 | * 37 | * @author Fabrizio Giudici 38 | * @version $Id$ 39 | * 40 | **********************************************************************************************************************/ 41 | public class RasterReader_NIKON_D3 extends NEFRasterReader 42 | { 43 | @Override 44 | protected void loadUncompressedRaster (final @Nonnull RAWImageInputStream iis, 45 | final @Nonnull WritableRaster raster, 46 | final @Nonnull RAWImageReaderSupport ir) 47 | throws IOException 48 | { 49 | assert (cfaOffsets != null); 50 | loadUncompressedRaster16(iis, raster, ir); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /modules/codec/src/main/java/it/tidalwave/imageio/orf/CameraSettings.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.orf; 24 | 25 | /*********************************************************************************************************************** 26 | * 27 | * @author Fabrizio Giudici 28 | * @version $Id$ 29 | * 30 | **********************************************************************************************************************/ 31 | public class CameraSettings extends OlympusCameraSettingsMakerNoteSupport 32 | { 33 | private final static long serialVersionUID = 324234234234235L; 34 | } 35 | -------------------------------------------------------------------------------- /modules/codec/src/main/java/it/tidalwave/imageio/orf/Equipment.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.orf; 24 | 25 | /*********************************************************************************************************************** 26 | * 27 | * @author Fabrizio Giudici 28 | * @version $Id$ 29 | * 30 | **********************************************************************************************************************/ 31 | public class Equipment extends OlympusEquipmentMakerNoteSupport 32 | { 33 | private final static long serialVersionUID = 454358934592349084L; 34 | } 35 | -------------------------------------------------------------------------------- /modules/codec/src/main/java/it/tidalwave/imageio/orf/FocusInfo.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.orf; 24 | 25 | /*********************************************************************************************************************** 26 | * 27 | * @author Fabrizio Giudici 28 | * @version $Id$ 29 | * 30 | **********************************************************************************************************************/ 31 | public class FocusInfo extends OlympusFocusInfoMakerNoteSupport 32 | { 33 | private final static long serialVersionUID = 23423598354698L; 34 | } 35 | -------------------------------------------------------------------------------- /modules/codec/src/main/java/it/tidalwave/imageio/orf/ImageProcessing.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.orf; 24 | 25 | /*********************************************************************************************************************** 26 | * 27 | * @author Fabrizio Giudici 28 | * @version $Id$ 29 | * 30 | **********************************************************************************************************************/ 31 | public class ImageProcessing extends OlympusImageProcessingMakerNoteSupport 32 | { 33 | private final static long serialVersionUID = 23423423423535654L; 34 | } 35 | -------------------------------------------------------------------------------- /modules/codec/src/main/java/it/tidalwave/imageio/orf/RawDevelopment.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.orf; 24 | 25 | /*********************************************************************************************************************** 26 | * 27 | * @author Fabrizio Giudici 28 | * @version $Id$ 29 | * 30 | **********************************************************************************************************************/ 31 | public class RawDevelopment extends OlympusRawDevelopmentMakerNoteSupport 32 | { 33 | private final static long serialVersionUID = 3423424574564564523L; 34 | } 35 | -------------------------------------------------------------------------------- /modules/codec/src/main/java/it/tidalwave/imageio/raf/FujiMakerNote.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.raf; 24 | 25 | import javax.annotation.Nonnull; 26 | import java.io.IOException; 27 | import it.tidalwave.imageio.io.RAWImageInputStream; 28 | 29 | /*********************************************************************************************************************** 30 | * 31 | * @author Fabrizio Giudici 32 | * @version $Id$ 33 | * 34 | **********************************************************************************************************************/ 35 | public class FujiMakerNote extends FujiMakerNoteSupport 36 | { 37 | private final static long serialVersionUID = 6347805620960118907L; 38 | 39 | /******************************************************************************************************************* 40 | * 41 | * {@inheritDoc} 42 | * 43 | ******************************************************************************************************************/ 44 | @Override 45 | public void loadAll (@Nonnull final RAWImageInputStream iis, final long offset) 46 | throws IOException 47 | { 48 | iis.seek(offset); 49 | final byte[] buffer = new byte[8]; 50 | iis.readFully(buffer); 51 | final String s = new String(buffer); 52 | 53 | if (s.equals("FUJIFILM")) 54 | { 55 | iis.skipBytes(4); 56 | super.load(iis, iis.getStreamPosition()); // not loadAll(), there's no next-IFD pointer at the end 57 | } 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /modules/codec/src/main/java/it/tidalwave/imageio/raw/HeaderProcessor.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.raw; 24 | 25 | import java.io.IOException; 26 | import javax.imageio.stream.ImageInputStream; 27 | import it.tidalwave.imageio.io.RAWImageInputStream; 28 | 29 | /*********************************************************************************************************************** 30 | * 31 | * @author Fabrizio Giudici 32 | * @version $Id$ 33 | * 34 | **********************************************************************************************************************/ 35 | public class HeaderProcessor 36 | { 37 | /******************************************************************************************************************* 38 | * 39 | * 40 | *******************************************************************************/ 41 | public void process (RAWImageInputStream iis) throws IOException 42 | { 43 | } 44 | 45 | /******************************************************************************************************************* 46 | * 47 | * @return 48 | * @throws IOException 49 | * 50 | *******************************************************************************/ 51 | public int getBaseOffset() 52 | { 53 | return 0; 54 | } 55 | 56 | /******************************************************************************************************************* 57 | * 58 | * @return 59 | * @throws IOException 60 | * 61 | *******************************************************************************/ 62 | public int getOffset () 63 | { 64 | return 0; 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /modules/codec/src/main/java/it/tidalwave/imageio/raw/PostProcessor.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.raw; 24 | 25 | import javax.annotation.Nonnull; 26 | import java.awt.image.BufferedImage; 27 | 28 | /*********************************************************************************************************************** 29 | * 30 | * @author Fabrizio Giudici 31 | * @version $Id$ 32 | * 33 | **********************************************************************************************************************/ 34 | public interface PostProcessor 35 | { 36 | @Nonnull 37 | public BufferedImage process (@Nonnull BufferedImage image, 38 | @Nonnull RAWMetadataSupport metadata, 39 | @Nonnull RAWImageReadParam readParam); 40 | 41 | @Nonnull 42 | public void processMetadata (@Nonnull RAWMetadataSupport metadata, 43 | @Nonnull RAWImageReadParam readParam); 44 | } 45 | -------------------------------------------------------------------------------- /modules/codec/src/main/java/it/tidalwave/imageio/raw/Version.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.raw; 24 | 25 | import it.tidalwave.imageio.util.VersionLoader; 26 | 27 | /*********************************************************************************************************************** 28 | * 29 | * @author Fabrizio Giudici 30 | * @version $Id$ 31 | * 32 | **********************************************************************************************************************/ 33 | public final class Version 34 | { 35 | public final static String TAG = VersionLoader.getVersion(Version.class); 36 | 37 | private Version() 38 | { 39 | } 40 | 41 | public static void main (final String ... args) 42 | { 43 | System.out.println("tag: " + TAG); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /modules/codec/src/main/java/it/tidalwave/imageio/rawprocessor/RAWProcessorInstallerSpi.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.rawprocessor; 24 | 25 | import java.io.File; 26 | import java.io.IOException; 27 | import java.util.Locale; 28 | import javax.imageio.spi.ImageInputStreamSpi; 29 | import javax.imageio.stream.ImageInputStream; 30 | 31 | /** 32 | * 33 | * @author Fabrizio Giudici 34 | * 35 | * This is a dummy Spi used only for installing the RAWProcessor stuff. It's a temporary 36 | * trick to keep the RAWProcessor stuff in a different sub-project until it gets mature. 37 | * 38 | */ 39 | public class RAWProcessorInstallerSpi extends ImageInputStreamSpi 40 | { 41 | public RAWProcessorInstallerSpi() 42 | { 43 | super("dummy", "dummy", Float.class); 44 | install(); 45 | } 46 | 47 | public ImageInputStream createInputStreamInstance (Object object, boolean b, File file) throws IOException 48 | { 49 | return null; 50 | } 51 | 52 | public String getDescription (Locale locale) 53 | { 54 | return "dummy"; 55 | } 56 | 57 | private void install() 58 | { 59 | try 60 | { 61 | Class.forName("it.tidalwave.imageio.rawprocessor.RAWProcessorInstaller"); 62 | System.err.println("RAWProcessor succesfully installed"); 63 | } 64 | catch (ClassNotFoundException e) 65 | { 66 | System.err.println("RAWProcessor not found: " + e); 67 | } 68 | catch (Throwable e) 69 | { 70 | System.err.println("Error while running RAWProcessorInstaller: " + e.toString()); 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /modules/codec/src/main/java/it/tidalwave/imageio/srf/SonySRF0.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.srf; 24 | 25 | public class SonySRF0 extends SonySRFMakerNoteSupport 26 | { 27 | private final static long serialVersionUID = 23423523423L; 28 | } 29 | -------------------------------------------------------------------------------- /modules/codec/src/main/java/it/tidalwave/imageio/srf/SonySRF1.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.srf; 24 | 25 | public class SonySRF1 extends SonySRFMakerNoteSupport 26 | { 27 | private final static long serialVersionUID = 43534654634534523L; 28 | } 29 | -------------------------------------------------------------------------------- /modules/codec/src/main/java/it/tidalwave/imageio/srf/SonySRF2.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.srf; 24 | 25 | public class SonySRF2 extends SonySRFMakerNoteSupport 26 | { 27 | private final static long serialVersionUID = 46546983459328459L; 28 | } 29 | -------------------------------------------------------------------------------- /modules/codec/src/main/java/it/tidalwave/imageio/srf/SonySRF3.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.srf; 24 | 25 | public class SonySRF3 extends SonySRFMakerNoteSupport 26 | { 27 | private final static long serialVersionUID = 456747456345243L; 28 | } 29 | -------------------------------------------------------------------------------- /modules/codec/src/main/java/it/tidalwave/imageio/srf/SonySRF4.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.srf; 24 | 25 | public class SonySRF4 extends SonySRFMakerNoteSupport 26 | { 27 | private final static long serialVersionUID = 265745634543252L; 28 | } 29 | -------------------------------------------------------------------------------- /modules/codec/src/main/java/it/tidalwave/imageio/srf/SonySRF5.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.srf; 24 | 25 | public class SonySRF5 extends SonySRFMakerNoteSupport 26 | { 27 | private final static long serialVersionUID = 345436344242452L; 28 | } 29 | -------------------------------------------------------------------------------- /modules/codec/src/main/java/it/tidalwave/imageio/srf/SonySRF6.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.srf; 24 | 25 | import it.tidalwave.imageio.tiff.IFD; 26 | 27 | public class SonySRF6 extends IFD 28 | { 29 | private final static long serialVersionUID = 2559302725666559996L; 30 | } 31 | -------------------------------------------------------------------------------- /modules/codec/src/main/java/it/tidalwave/imageio/util/VersionLoader.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.util; 24 | 25 | import javax.annotation.Nonnull; 26 | import java.util.Properties; 27 | import it.tidalwave.imageio.raw.Version; 28 | import java.io.InputStream; 29 | 30 | /*********************************************************************************************************************** 31 | * 32 | * @author Fabrizio Giudici 33 | * @version $Id$ 34 | * 35 | **********************************************************************************************************************/ 36 | public final class VersionLoader 37 | { 38 | private VersionLoader() 39 | { 40 | } 41 | 42 | public static String getVersion (final @Nonnull Class clazz) 43 | { 44 | try 45 | { 46 | final InputStream is = Version.class.getResourceAsStream("version.properties"); 47 | final Properties properties = new Properties(); 48 | properties.load(is); 49 | is.close(); 50 | return properties.getProperty("version"); 51 | } 52 | catch (Exception e) 53 | { 54 | System.err.printf("SEVERE: Can't read version number for: %s because of %s \n", clazz, e); 55 | return "unknown"; 56 | } 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /modules/codec/src/main/metadata/KodakMakerNote.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /modules/codec/src/main/metadata/OlympusFocusInfo.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /modules/codec/src/main/metadata/OlympusRawDevelopment.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /modules/codec/src/main/metadata/SonyMakerNote.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 26 | 27 | 0 28 | long 29 | 1 30 | SRF2 Key 31 | 32 | The key needed for deciphering the SRF2 IFD. 33 | 34 | 35 | 1 36 | long 37 | 1 38 | Raster Key 39 | 40 | The key needed for deciphering the raster data. 41 | 42 | 43 | 4 44 | long 45 | 1 46 | Raster Offset 47 | 48 | The offset of raster data. 49 | 50 | 51 | 5 52 | long 53 | 1 54 | Raster Byte Count 55 | 56 | The size of raster data in bytes. 57 | 58 | 59 | 45099 60 | long 61 | 2 62 | Sensor Size 63 | 64 | 65 | 66 | 67 | 45100 68 | long 69 | 2 70 | Thumbnail Size 71 | 72 | 73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /modules/codec/src/main/metadata/html/KodakMakerNote.html: -------------------------------------------------------------------------------- 1 |
#nametypeenumerationdescription
23 | -------------------------------------------------------------------------------- /modules/codec/src/main/metadata/xslt/DirectoryToTable.xslt: -------------------------------------------------------------------------------- 1 | 2 | 36 | 37 | 38 | 39 | 40 | 41 | 42 |
#nametypeenumerationdescription
43 |
44 | 45 | 46 | 47 | 48 | 49 | 50 | [] 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
64 |
65 | 66 |
67 | -------------------------------------------------------------------------------- /modules/codec/src/main/metadata/xslt/DirectoryToText.xslt: -------------------------------------------------------------------------------- 1 | 2 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 |
Tag # -
44 | Type: 45 | []
46 | Example:
47 | Description: 48 | 49 |
50 | 51 | 52 | Allowed values are: 53 | 56 | 57 | 58 | 59 |
  • :
  • 60 |
    61 | 62 |
    63 | -------------------------------------------------------------------------------- /modules/codec/src/main/resources/META-INF/services/javax.imageio.spi.ImageInputStreamSpi: -------------------------------------------------------------------------------- 1 | it.tidalwave.imageio.io.FileImageInputStream2Spi 2 | it.tidalwave.imageio.rawprocessor.RAWProcessorInstallerSpi 3 | -------------------------------------------------------------------------------- /modules/codec/src/main/resources/META-INF/services/javax.imageio.spi.ImageReaderSpi: -------------------------------------------------------------------------------- 1 | it.tidalwave.imageio.arw.ARWImageReaderSpi 2 | it.tidalwave.imageio.crw.CRWImageReaderSpi 3 | it.tidalwave.imageio.cr2.CR2ImageReaderSpi 4 | it.tidalwave.imageio.dcr.DCRImageReaderSpi 5 | it.tidalwave.imageio.dng.DNGImageReaderSpi 6 | it.tidalwave.imageio.mrw.MRWImageReaderSpi 7 | it.tidalwave.imageio.nef.NEFImageReaderSpi 8 | it.tidalwave.imageio.orf.ORFImageReaderSpi 9 | it.tidalwave.imageio.pef.PEFImageReaderSpi 10 | it.tidalwave.imageio.raf.RAFImageReaderSpi 11 | it.tidalwave.imageio.srf.SRFImageReaderSpi 12 | 13 | -------------------------------------------------------------------------------- /modules/codec/src/main/resources/it/tidalwave/imageio/raw/version.properties: -------------------------------------------------------------------------------- 1 | version = ${project.version}.${buildNumber} 2 | -------------------------------------------------------------------------------- /modules/codec/src/test/java/it/tidalwave/imageio/arw/ARWImageReaderTest.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.arw; 24 | 25 | import it.tidalwave.imageio.test.ImageReaderTestSupport; 26 | import org.junit.Test; 27 | 28 | /*********************************************************************************************************************** 29 | * 30 | * @author Fabrizio Giudici 31 | * @version $Id$ 32 | * 33 | **********************************************************************************************************************/ 34 | public class ARWImageReaderTest extends ImageReaderTestSupport 35 | { 36 | @Test 37 | public void testMIMEType() 38 | { 39 | assertMIMETypes("arw", "image/x-sony-arw"); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /modules/codec/src/test/java/it/tidalwave/imageio/cr2/CR2ImageReaderTest.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.cr2; 24 | 25 | import it.tidalwave.imageio.test.ImageReaderTestSupport; 26 | import org.junit.Test; 27 | 28 | /*********************************************************************************************************************** 29 | * 30 | * @author Fabrizio Giudici 31 | * @version $Id$ 32 | * 33 | **********************************************************************************************************************/ 34 | public class CR2ImageReaderTest extends ImageReaderTestSupport 35 | { 36 | @Test 37 | public void testMIMEType() 38 | { 39 | assertMIMETypes("cr2", "image/x-canon-cr2"); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /modules/codec/src/test/java/it/tidalwave/imageio/crw/CRWImageReaderTest.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.crw; 24 | 25 | import it.tidalwave.imageio.test.ImageReaderTestSupport; 26 | import org.junit.Test; 27 | 28 | /*********************************************************************************************************************** 29 | * 30 | * @author Fabrizio Giudici 31 | * @version $Id$ 32 | * 33 | **********************************************************************************************************************/ 34 | public class CRWImageReaderTest extends ImageReaderTestSupport 35 | { 36 | @Test 37 | public void testMIMEType() 38 | { 39 | assertMIMETypes("crw", "image/x-canon-crw"); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /modules/codec/src/test/java/it/tidalwave/imageio/dng/DNGImageReaderTest.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.dng; 24 | 25 | import it.tidalwave.imageio.test.ImageReaderTestSupport; 26 | import org.junit.Test; 27 | 28 | /*********************************************************************************************************************** 29 | * 30 | * @author Fabrizio Giudici 31 | * @version $Id$ 32 | * 33 | **********************************************************************************************************************/ 34 | public class DNGImageReaderTest extends ImageReaderTestSupport 35 | { 36 | @Test 37 | public void testMIMEType() 38 | { 39 | assertMIMETypes("dng", "image/x-adobe-dng"); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /modules/codec/src/test/java/it/tidalwave/imageio/mrw/MRWImageReaderTest.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.mrw; 24 | 25 | import it.tidalwave.imageio.test.ImageReaderTestSupport; 26 | import org.junit.Test; 27 | 28 | /*********************************************************************************************************************** 29 | * 30 | * @author Fabrizio Giudici 31 | * @version $Id$ 32 | * 33 | **********************************************************************************************************************/ 34 | public class MRWImageReaderTest extends ImageReaderTestSupport 35 | { 36 | @Test 37 | public void testMIMEType() 38 | { 39 | assertMIMETypes("mrw", "image/x-minolta-mrw"); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /modules/codec/src/test/java/it/tidalwave/imageio/nef/NEFImageReaderTest.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.nef; 24 | 25 | import it.tidalwave.imageio.test.ImageReaderTestSupport; 26 | import org.junit.Test; 27 | 28 | /*********************************************************************************************************************** 29 | * 30 | * @author Fabrizio Giudici 31 | * @version $Id$ 32 | * 33 | **********************************************************************************************************************/ 34 | public class NEFImageReaderTest extends ImageReaderTestSupport 35 | { 36 | @Test 37 | public void testMIMEType() 38 | { 39 | assertMIMETypes("nef", "image/x-nikon-nef"); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /modules/codec/src/test/java/it/tidalwave/imageio/orf/ORFImageReaderTest.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.orf; 24 | 25 | import it.tidalwave.imageio.test.ImageReaderTestSupport; 26 | import org.junit.Test; 27 | 28 | /*********************************************************************************************************************** 29 | * 30 | * @author Fabrizio Giudici 31 | * @version $Id$ 32 | * 33 | **********************************************************************************************************************/ 34 | public class ORFImageReaderTest extends ImageReaderTestSupport 35 | { 36 | @Test 37 | public void testMIMEType() 38 | { 39 | assertMIMETypes("orf", "image/x-olympus-orf"); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /modules/codec/src/test/java/it/tidalwave/imageio/pef/PEFImageReaderTest.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.pef; 24 | 25 | import it.tidalwave.imageio.test.ImageReaderTestSupport; 26 | import org.junit.Test; 27 | 28 | /*********************************************************************************************************************** 29 | * 30 | * @author Fabrizio Giudici 31 | * @version $Id$ 32 | * 33 | **********************************************************************************************************************/ 34 | public class PEFImageReaderTest extends ImageReaderTestSupport 35 | { 36 | @Test 37 | public void testMIMEType() 38 | { 39 | assertMIMETypes("pef", "image/x-pentax-pef"); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /modules/codec/src/test/java/it/tidalwave/imageio/raf/RAFImageReaderTest.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.raf; 24 | 25 | import it.tidalwave.imageio.test.ImageReaderTestSupport; 26 | import org.junit.Test; 27 | 28 | /*********************************************************************************************************************** 29 | * 30 | * @author Fabrizio Giudici 31 | * @version $Id$ 32 | * 33 | **********************************************************************************************************************/ 34 | public class RAFImageReaderTest extends ImageReaderTestSupport 35 | { 36 | @Test 37 | public void testMIMEType() 38 | { 39 | assertMIMETypes("raf", "image/x-fuji-raf"); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /modules/codec/src/test/java/it/tidalwave/imageio/raw/SourceTest.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.raw; 24 | 25 | import org.junit.Test; 26 | import static org.junit.Assert.*; 27 | 28 | /*********************************************************************************************************************** 29 | * 30 | * @author Fabrizio Giudici 31 | * @version $Id$ 32 | * 33 | **********************************************************************************************************************/ 34 | public class SourceTest 35 | { 36 | @Test 37 | public void testGetDefault1() 38 | { 39 | assertEquals(Source.PROCESSED_IMAGE, Source.getDefault()); 40 | } 41 | 42 | @Test 43 | public void testGetDefault2() 44 | { 45 | System.setProperty(Source.PROP_DEFAULT_SOURCE, Source.DEFAULT_SOURCE_PROCESSED_IMAGE); 46 | assertEquals(Source.PROCESSED_IMAGE, Source.getDefault()); 47 | } 48 | 49 | @Test 50 | public void testGetDefault3() 51 | { 52 | System.setProperty(Source.PROP_DEFAULT_SOURCE, Source.DEFAULT_SOURCE_FULL_SIZE_PREVIEW); 53 | assertEquals(Source.FULL_SIZE_PREVIEW, Source.getDefault()); 54 | } 55 | 56 | @Test 57 | public void testGetDefault4() 58 | { 59 | System.setProperty(Source.PROP_DEFAULT_SOURCE, Source.DEFAULT_SOURCE_RAW_IMAGE); 60 | assertEquals(Source.RAW_IMAGE, Source.getDefault()); 61 | } 62 | 63 | @Test(expected=IllegalArgumentException.class) 64 | public void testGetDefault5() 65 | { 66 | System.setProperty(Source.PROP_DEFAULT_SOURCE, "foobar"); 67 | Source.getDefault(); 68 | } 69 | } -------------------------------------------------------------------------------- /modules/codec/src/test/java/it/tidalwave/imageio/srf/SRFImageReaderTest.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.srf; 24 | 25 | import it.tidalwave.imageio.test.ImageReaderTestSupport; 26 | import org.junit.Test; 27 | 28 | /*********************************************************************************************************************** 29 | * 30 | * @author Fabrizio Giudici 31 | * @version $Id$ 32 | * 33 | **********************************************************************************************************************/ 34 | public class SRFImageReaderTest extends ImageReaderTestSupport 35 | { 36 | @Test 37 | public void testMIMEType() 38 | { 39 | assertMIMETypes("srf", "image/x-sony-srf"); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /modules/codec/src/test/resources/it/tidalwave/imageio/test/log.properties: -------------------------------------------------------------------------------- 1 | #handlers=java.util.logging.FileHandler, java.util.logging.ConsoleHandler, it.tidalwave.thesefoolishthings.junit.MultiThreadHandler 2 | handlers=java.util.logging.FileHandler, it.tidalwave.thesefoolishthings.junit.MultiThreadHandler 3 | 4 | java.util.logging.FileHandler.level = ALL 5 | java.util.logging.FileHandler.pattern = target/logs/jrawio.log 6 | java.util.logging.FileHandler.limit = 10000000 7 | java.util.logging.FileHandler.count = 20 8 | java.util.logging.FileHandler.formatter = it.tidalwave.imageio.SingleLineLogFormatter 9 | 10 | java.util.logging.ConsoleHandler.level = ALL 11 | java.util.logging.ConsoleHandler.formatter = it.tidalwave.imageio.SingleLineLogFormatter 12 | 13 | it.tidalwave.thesefoolishthings.junit.MultiThreadHandler.level = ALL 14 | it.tidalwave.thesefoolishthings.junit.MultiThreadHandler.directory = target/logs 15 | it.tidalwave.thesefoolishthings.junit.MultiThreadHandler.formatter = it.tidalwave.imageio.SingleLineLogFormatter 16 | 17 | it.tidalwave.level = ALL 18 | -------------------------------------------------------------------------------- /modules/jrawio-all/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | 7 | org.rawdarkroom 8 | jrawio 9 | 1.7-ALPHA-3-SNAPSHOT 10 | ../../pom.xml 11 | 12 | 13 | it.tidalwave.imageio.raw 14 | bundle 15 | jrawio - JAR artifact 16 | 17 | 18 | 19 | org.rawdarkroom 20 | codec 21 | 22 | true 23 | 24 | 25 | org.rawdarkroom 26 | processor 27 | 28 | true 29 | 30 | 31 | 32 | 33 | 34 | 35 | org.apache.felix 36 | maven-bundle-plugin 37 | true 38 | 39 | 40 | it.tidalwave.imageio.*;-split-package:=merge-first 41 | jrawio 42 | it.tidalwave.imageio.raw 43 | http://jrawio.rawdarkroom.org 44 | processor;codec;inline=true 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /modules/jrawio-test/LICENSE.txt: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * 3 | * jrawio - a Java(TM) ImageIO API Spi Provider for RAW files 4 | * ========================================================== 5 | * 6 | * Copyright (C) 2003 - 2016 by Fabrizio Giudici 7 | * Project home page: http://jrawio.tidalwave.it 8 | * 9 | ******************************************************************************* 10 | * 11 | * Licensed under the Apache License, Version 2.0 (the "License"); 12 | * you may not use this file except in compliance with the License. 13 | * You may obtain a copy of the License at 14 | * 15 | * http://www.apache.org/licenses/LICENSE-2.0 16 | * 17 | * Unless required by applicable law or agreed to in writing, software 18 | * distributed under the License is distributed on an "AS IS" BASIS, 19 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 20 | * See the License for the specific language governing permissions and 21 | * limitations under the License. 22 | * 23 | ******************************************************************************* 24 | * 25 | * $Id: $ 26 | * 27 | ******************************************************************************/ 28 | -------------------------------------------------------------------------------- /modules/jrawio-test/README.txt: -------------------------------------------------------------------------------- 1 | ==== 2 | 3 | jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | 6 | ********************************************************************************************************************** 7 | 8 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | the License. You may obtain a copy of the License at 10 | 11 | http://www.apache.org/licenses/LICENSE-2.0 12 | 13 | Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | specific language governing permissions and limitations under the License. 16 | 17 | ********************************************************************************************************************** 18 | 19 | WWW: http://jrawio.rawdarkroom.org 20 | SCM: https://kenai.com/hg/jrawio~src 21 | 22 | ==== 23 | 24 | This modules is not part of the project - it contains old tests from 1.0.x that have to be eventually 25 | updated to the new implementation. 26 | -------------------------------------------------------------------------------- /modules/jrawio-test/Supported.html: -------------------------------------------------------------------------------- 1 | 23 | 24 | 25 |
    MakerFormatModel
    26 | -------------------------------------------------------------------------------- /modules/jrawio-test/findvalues.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # 4 | # jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 5 | # Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 6 | # 7 | # ********************************************************************************************************************** 8 | # 9 | # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 10 | # the License. You may obtain a copy of the License at 11 | # 12 | # http://www.apache.org/licenses/LICENSE-2.0 13 | # 14 | # Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 15 | # an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 16 | # specific language governing permissions and limitations under the License. 17 | # 18 | # ********************************************************************************************************************** 19 | # 20 | # WWW: http://jrawio.rawdarkroom.org 21 | # SCM: https://kenai.com/hg/jrawio~src 22 | # 23 | # 24 | 25 | 26 | grep $1 image.properties | grep EXIF | grep MakerNote | grep "$2\." | grep value | sed 's/.*value//' | sort | uniq 27 | 28 | -------------------------------------------------------------------------------- /modules/jrawio-test/samples/xml/L2060314.DNG.xml.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tidalwave-it/jrawio-src/0d632ced58c00a12b30effe31f133e50cbf74913/modules/jrawio-test/samples/xml/L2060314.DNG.xml.gz -------------------------------------------------------------------------------- /modules/jrawio-test/src/main/java/files: -------------------------------------------------------------------------------- 1 | From the Web/cdimage.debian.org/pub/test/maswan/debconf5/debconf5_hut.cr2 2 | /Users/fritz/Desktop/Phtoos/2/_DSC7001.NEF 3 | From the Web/www.vossassociates.com/docs/NEF Files/_DSC0255.NEF 4 | From the Web/others/Nikon/D2X/DSC_0001-SavedAsNef.nef 5 | www.tidalwave.it/Nikon D70/20050527-0104.NDF 6 | From the Web/www.jirvana.com/350d_0000_0103.CR2 7 | From the Web/www.jirvana.com/1ds2_0000_1253.CR2 8 | From the Web/www.jirvana.com/_D6H0092.CR2 9 | From Individuals/Emanuele/100_0043.CRW 10 | From Individuals/karel@sobota.net/DSC07598.SRF 11 | From the Web/www.leicaphoto.net/L2060314.DNG 12 | From the Web/www.jirvana.com/d70_0000_0614.DNG 13 | From the Web/digikam3rdparty.free.fr/Images_2_Test_DImg/RAW/PENTAX-ISD.PEF 14 | From the Web/digitalfotonetz.de/img/Testfotos/istDs/IMGP3469.PEF 15 | From the Web/www.cs.pdx.edu/pict0340.mrw 16 | 17 | From Individuals/www.dpmagic.com/DSC_3616.NEF 18 | From the Web/rrboc.jp/files/DSC_0208.NEF 19 | From the Web/www.dcresource.com/reviews/olympus/c8080wz-review/P3140074.ORF 20 | From the Web/dc.watch.impress.co.jp/static/2004/12/28/olympus/pc260025.orf 21 | 22 | From the Web/download.kodak.com/digital/software/easyShare/v2_1/dcsPro14n/Silver/Silver.DCR 23 | 24 | -------------------------------------------------------------------------------- /modules/jrawio-test/src/test/java/it/tidalwave/imageio/test/util/PixelSpeed.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.test.util; 24 | 25 | public class PixelSpeed 26 | { 27 | private long pixelCount; 28 | 29 | private long cumulativeTime; 30 | 31 | public void addToStatistics (long pixelCount, 32 | long cumulativeTime) 33 | { 34 | this.pixelCount += pixelCount; 35 | this.cumulativeTime += cumulativeTime; 36 | } 37 | 38 | public double getSpeed () 39 | { 40 | return 1E-3 * pixelCount / cumulativeTime; 41 | } 42 | 43 | public String toString () 44 | { 45 | return Double.toString(getSpeed()); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /modules/jrawio-test/test-log.properties: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 3 | # BlueMarine - a Java(TM) photo processing application 4 | # ---------------------------------------------------- 5 | # 6 | # Copyright (C) 2003 - 2016 by Fabrizio Giudici (Fabrizio.Giudici@tidalwave.it) 7 | # Project home page: http://www.tidalwave.it/bluemarine 8 | # 9 | ################################################################################ 10 | # 11 | # MIT License notice 12 | # 13 | # Permission is hereby granted, free of charge, to any person obtaining a copy 14 | # of this software and associated documentation files (the "Software"), to deal 15 | # in the Software without restriction, including without limitation the rights 16 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 17 | # copies of the Software, and to permit persons to whom the Software is 18 | # furnished to do so, subject to the following conditions: 19 | # 20 | # The above copyright notice and this permission notice shall be included in 21 | # all copies or substantial portions of the Software. 22 | # 23 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 24 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 25 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 26 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 27 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 28 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 29 | # SOFTWARE. 30 | # 31 | ################################################################################ 32 | # 33 | # $Id$ 34 | # $Log: test-log.properties,v $ 35 | # Revision 1.3 2006/02/15 19:02:47 fabriziogiudici 36 | # no message 37 | # 38 | # Revision 1.2 2006/02/14 18:10:49 fabriziogiudici 39 | # no message 40 | # 41 | # Revision 1.1 2006/01/31 21:19:18 fabriziogiudici 42 | # Initial import into java.net. 43 | # 44 | # Revision 1.1 2006/01/05 15:40:16 fabriziogiudici 45 | # *** empty log message *** 46 | # 47 | # Revision 1.3 2005/12/13 17:12:13 fabriziogiudici 48 | # *** empty log message *** 49 | # 50 | # Revision 1.2 2005/11/09 01:43:55 fabriziogiudici 51 | # Revision 1.1 2005/11/08 22:21:52 fabriziogiudici 52 | # 53 | ################################################################################ 54 | 55 | handlers=java.util.logging.FileHandler 56 | 57 | java.util.logging.FileHandler.level = ALL 58 | java.util.logging.FileHandler.pattern = log/test.log 59 | java.util.logging.FileHandler.limit = 10000000 60 | java.util.logging.FileHandler.count = 5 61 | java.util.logging.FileHandler.formatter = it.tidalwave.imageio.test.util.LogFormatter 62 | 63 | it.tidalwave.level = ALL 64 | -------------------------------------------------------------------------------- /modules/processor/LICENSE.txt: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * 3 | * jrawio - a Java(TM) ImageIO API Spi Provider for RAW files 4 | * ========================================================== 5 | * 6 | * Copyright (C) 2003 - 2016 by Fabrizio Giudici 7 | * Project home page: http://jrawio.tidalwave.it 8 | * 9 | ******************************************************************************* 10 | * 11 | * Licensed under the Apache License, Version 2.0 (the "License"); 12 | * you may not use this file except in compliance with the License. 13 | * You may obtain a copy of the License at 14 | * 15 | * http://www.apache.org/licenses/LICENSE-2.0 16 | * 17 | * Unless required by applicable law or agreed to in writing, software 18 | * distributed under the License is distributed on an "AS IS" BASIS, 19 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 20 | * See the License for the specific language governing permissions and 21 | * limitations under the License. 22 | * 23 | ******************************************************************************* 24 | * 25 | * $Id: $ 26 | * 27 | ******************************************************************************/ 28 | -------------------------------------------------------------------------------- /modules/processor/demo.sh: -------------------------------------------------------------------------------- 1 | # 2 | # 3 | # jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | # Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | # 6 | # ********************************************************************************************************************** 7 | # 8 | # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | # the License. You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | # an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations under the License. 16 | # 17 | # ********************************************************************************************************************** 18 | # 19 | # WWW: http://jrawio.rawdarkroom.org 20 | # SCM: https://kenai.com/hg/jrawio~src 21 | # 22 | # 23 | 24 | java -Xmx512M -cp ../jrawio-src/examples:../jrawio-src/dist/jrawio-1.0.RC4DEV.jar:dist/jrawio-unsupported.jar -Djava.util.logging.config.file=log.properties Main "$1" 25 | -------------------------------------------------------------------------------- /modules/processor/nb-configuration.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 25 | 31 | 32 | 38 | all 39 | 40 | 41 | -------------------------------------------------------------------------------- /modules/processor/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | 7 | org.rawdarkroom 8 | jrawio 9 | 1.7-ALPHA-3-SNAPSHOT 10 | ../../pom.xml 11 | 12 | 13 | processor 14 | jar 15 | jrawio - processor 16 | 17 | 18 | 19 | org.rawdarkroom 20 | codec 21 | 22 | 23 | org.rawdarkroom 24 | codec 25 | tests 26 | test 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /modules/processor/src/main/java/it/tidalwave/imageio/rawprocessor/Operation.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.rawprocessor; 24 | 25 | import javax.annotation.Nonnull; 26 | import it.tidalwave.imageio.raw.Source; 27 | 28 | /*********************************************************************************************************************** 29 | * 30 | * @author Fabrizio Giudici 31 | * @version $Id$ 32 | * 33 | **********************************************************************************************************************/ 34 | public interface Operation 35 | { 36 | /******************************************************************************************************************* 37 | * 38 | * 39 | ******************************************************************************************************************/ 40 | public void init (PipelineArtifact artifact) throws Exception; 41 | 42 | /******************************************************************************************************************* 43 | * 44 | * 45 | ******************************************************************************************************************/ 46 | public boolean supportsType (@Nonnull Source.Type imageType); 47 | 48 | /******************************************************************************************************************* 49 | * 50 | * 51 | ******************************************************************************************************************/ 52 | public void process (PipelineArtifact artifact) throws Exception; 53 | 54 | /******************************************************************************************************************* 55 | * 56 | * 57 | ******************************************************************************************************************/ 58 | public void processMetadata (PipelineArtifact artifact) throws Exception; 59 | } 60 | -------------------------------------------------------------------------------- /modules/processor/src/main/java/it/tidalwave/imageio/rawprocessor/Version.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.rawprocessor; 24 | 25 | import it.tidalwave.imageio.util.VersionLoader; 26 | 27 | /*********************************************************************************************************************** 28 | * 29 | * @author Fabrizio Giudici 30 | * @version $Id$ 31 | * 32 | **********************************************************************************************************************/ 33 | public final class Version 34 | { 35 | public final static String REQUIRED_JRAWIO_TAG = VersionLoader.getVersion(Version.class); 36 | 37 | private Version() 38 | { 39 | } 40 | 41 | public static void main (final String[] args) 42 | { 43 | System.out.println("tag: " + REQUIRED_JRAWIO_TAG); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /modules/processor/src/main/java/it/tidalwave/imageio/rawprocessor/arw/ARWCurveOperation.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.rawprocessor.arw; 24 | 25 | import it.tidalwave.imageio.util.Logger; 26 | import it.tidalwave.imageio.rawprocessor.PipelineArtifact; 27 | import it.tidalwave.imageio.rawprocessor.raw.CurveOperation; 28 | 29 | /*********************************************************************************************************************** 30 | * 31 | * @author Fabrizio Giudici 32 | * @version $Id$ 33 | * 34 | **********************************************************************************************************************/ 35 | public class ARWCurveOperation extends CurveOperation 36 | { 37 | private final static Logger logger = getLogger(ARWCurveOperation.class); 38 | 39 | /******************************************************************************************************************* 40 | * 41 | * @inheritDoc 42 | * 43 | ******************************************************************************************************************/ 44 | protected double getWhiteLevel (PipelineArtifact artifact) 45 | { 46 | logger.fine("getWhiteLevel()"); 47 | return 4095; // FIXME 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /modules/processor/src/main/java/it/tidalwave/imageio/rawprocessor/arw/ARWProcessor.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.rawprocessor.arw; 24 | 25 | import javax.annotation.Nonnull; 26 | import java.util.List; 27 | import it.tidalwave.imageio.rawprocessor.OperationSupport; 28 | import it.tidalwave.imageio.rawprocessor.RAWProcessor; 29 | import it.tidalwave.imageio.rawprocessor.raw.ColorProfileOperation; 30 | import it.tidalwave.imageio.rawprocessor.raw.DemosaicOperation; 31 | 32 | /*********************************************************************************************************************** 33 | * 34 | * @author Fabrizio Giudici 35 | * @version $Id$ 36 | * 37 | **********************************************************************************************************************/ 38 | public class ARWProcessor extends RAWProcessor 39 | { 40 | /******************************************************************************************************************* 41 | * 42 | * {@inheritDoc} 43 | * 44 | ******************************************************************************************************************/ 45 | protected void buildPipeline (@Nonnull final List operationList) 46 | { 47 | operationList.add(new ARWWhiteBalanceOperation()); 48 | // operationList.add(new NEFExposureOperation()); 49 | // operationList.add(new ComputeBlackLevelsOperation()); 50 | operationList.add(new ARWCurveOperation()); 51 | operationList.add(new DemosaicOperation()); 52 | operationList.add(new ARWSizeOperation()); 53 | operationList.add(new ColorProfileOperation()); 54 | // operationList.add(new SharpenOperation()); 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /modules/processor/src/main/java/it/tidalwave/imageio/rawprocessor/cr2/CR2Processor.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.rawprocessor.cr2; 24 | 25 | import javax.annotation.Nonnull; 26 | import java.util.List; 27 | import it.tidalwave.imageio.rawprocessor.OperationSupport; 28 | import it.tidalwave.imageio.rawprocessor.RAWProcessor; 29 | import it.tidalwave.imageio.rawprocessor.raw.ColorProfileOperation; 30 | import it.tidalwave.imageio.rawprocessor.raw.DemosaicOperation; 31 | 32 | /*********************************************************************************************************************** 33 | * 34 | * @author Fabrizio Giudici 35 | * @version $Id$ 36 | * 37 | **********************************************************************************************************************/ 38 | public class CR2Processor extends RAWProcessor 39 | { 40 | /******************************************************************************************************************* 41 | * 42 | * {@inheritDoc} 43 | * 44 | ******************************************************************************************************************/ 45 | protected void buildPipeline (final @Nonnull List operationList) 46 | { 47 | operationList.add(new CR2WhiteBalanceOperation()); 48 | // operationList.add(new NEFExposureOperation()); 49 | // operationList.add(new ComputeBlackLevelsOperation()); 50 | operationList.add(new CR2CurveOperation()); 51 | operationList.add(new DemosaicOperation()); 52 | operationList.add(new CR2SizeOperation()); 53 | operationList.add(new CR2ColorConversionOperation()); 54 | operationList.add(new ColorProfileOperation()); 55 | // operationList.add(new SharpenOperation()); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /modules/processor/src/main/java/it/tidalwave/imageio/rawprocessor/crw/CRWProcessor.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.rawprocessor.crw; 24 | 25 | import javax.annotation.Nonnull; 26 | import java.util.List; 27 | import it.tidalwave.imageio.rawprocessor.OperationSupport; 28 | import it.tidalwave.imageio.rawprocessor.RAWProcessor; 29 | import it.tidalwave.imageio.rawprocessor.raw.ColorProfileOperation; 30 | import it.tidalwave.imageio.rawprocessor.raw.DemosaicOperation; 31 | 32 | /*********************************************************************************************************************** 33 | * 34 | * @author Fabrizio Giudici 35 | * @version $Id$ 36 | * 37 | **********************************************************************************************************************/ 38 | public class CRWProcessor extends RAWProcessor 39 | { 40 | /******************************************************************************************************************* 41 | * 42 | * {@inheritDoc} 43 | * 44 | ******************************************************************************************************************/ 45 | protected void buildPipeline (final @Nonnull List operationList) 46 | { 47 | operationList.add(new CRWWhiteBalanceOperation()); 48 | // operationList.add(new ExposureOperation()); 49 | // operationList.add(new ComputeBlackLevelsOperation()); 50 | operationList.add(new CRWCurveOperation()); 51 | operationList.add(new DemosaicOperation()); 52 | operationList.add(new CRWSizeOperation()); 53 | operationList.add(new CRWColorConversionOperation()); 54 | operationList.add(new ColorProfileOperation()); 55 | // operationList.add(new SharpenOperation()); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /modules/processor/src/main/java/it/tidalwave/imageio/rawprocessor/crw/CRWWhiteBalanceOperation.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.rawprocessor.crw; 24 | 25 | import it.tidalwave.imageio.util.Logger; 26 | import it.tidalwave.imageio.crw.CRWMetadata; 27 | import it.tidalwave.imageio.raw.Source; 28 | import it.tidalwave.imageio.rawprocessor.OperationSupport; 29 | import it.tidalwave.imageio.rawprocessor.PipelineArtifact; 30 | 31 | /*********************************************************************************************************************** 32 | * 33 | * @author Fabrizio Giudici 34 | * @version $Id$ 35 | * 36 | **********************************************************************************************************************/ 37 | public class CRWWhiteBalanceOperation extends OperationSupport 38 | { 39 | private final static Logger logger = getLogger(CRWWhiteBalanceOperation.class); 40 | 41 | /******************************************************************************************************************* 42 | * 43 | * 44 | ******************************************************************************************************************/ 45 | public CRWWhiteBalanceOperation() 46 | { 47 | super(Source.Type.RAW); 48 | } 49 | 50 | /******************************************************************************************************************* 51 | * 52 | * @inheritDoc 53 | * 54 | ******************************************************************************************************************/ 55 | public void process (PipelineArtifact artifact) 56 | { 57 | logger.fine("process()"); 58 | CRWMetadata metadata = (CRWMetadata)artifact.getRAWMetadata(); 59 | double[] rbCoefficients = metadata.getRBCoefficients(); 60 | 61 | if (rbCoefficients != null) 62 | { 63 | artifact.multiplyRedCoefficient(rbCoefficients[0]); 64 | artifact.multiplyBlueCoefficient(rbCoefficients[1]); 65 | } 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /modules/processor/src/main/java/it/tidalwave/imageio/rawprocessor/dng/DNGColorConversionOperation.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.rawprocessor.dng; 24 | 25 | import javax.annotation.CheckForNull; 26 | import javax.annotation.Nonnull; 27 | import it.tidalwave.imageio.util.Logger; 28 | import it.tidalwave.imageio.tiff.IFD; 29 | import it.tidalwave.imageio.tiff.TIFFMetadataSupport; 30 | import it.tidalwave.imageio.rawprocessor.ColorMatrix; 31 | import it.tidalwave.imageio.rawprocessor.PipelineArtifact; 32 | import it.tidalwave.imageio.rawprocessor.raw.ColorConversionOperation; 33 | 34 | /*********************************************************************************************************************** 35 | * 36 | * @author Fabrizio Giudici 37 | * @version $Id$ 38 | * 39 | **********************************************************************************************************************/ 40 | public class DNGColorConversionOperation extends ColorConversionOperation 41 | { 42 | private final static Logger logger = getLogger(DNGColorConversionOperation.class); 43 | 44 | @Override 45 | @CheckForNull 46 | protected ColorMatrix getColorMatrixXYZ (final @Nonnull PipelineArtifact artifact) 47 | { 48 | final TIFFMetadataSupport metadata = (TIFFMetadataSupport)artifact.getRAWMetadata(); 49 | final IFD primaryIFD = metadata.getPrimaryIFD(); 50 | 51 | if (primaryIFD.isColorMatrix1Available()) 52 | { 53 | return getMatrix(primaryIFD.getColorMatrix1()); 54 | } 55 | 56 | return null; 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /modules/processor/src/main/java/it/tidalwave/imageio/rawprocessor/dng/DNGProcessor.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.rawprocessor.dng; 24 | 25 | import java.util.List; 26 | import it.tidalwave.imageio.rawprocessor.RAWProcessor; 27 | import it.tidalwave.imageio.rawprocessor.raw.RotateOperation; 28 | import it.tidalwave.imageio.rawprocessor.raw.ColorProfileOperation; 29 | import it.tidalwave.imageio.rawprocessor.raw.DemosaicOperation; 30 | 31 | /*********************************************************************************************************************** 32 | * 33 | * @author Fabrizio Giudici 34 | * @version $Id$ 35 | * 36 | **********************************************************************************************************************/ 37 | public class DNGProcessor extends RAWProcessor 38 | { 39 | /******************************************************************************************************************* 40 | * 41 | * @inheritDoc 42 | * 43 | ******************************************************************************************************************/ 44 | protected void buildPipeline (List operationList) 45 | { 46 | operationList.add(new DNGWhiteBalanceOperation()); 47 | // operationList.add(new ExposureOperation()); 48 | operationList.add(new DNGCurveOperation()); 49 | operationList.add(new DemosaicOperation()); 50 | operationList.add(new RotateOperation()); 51 | operationList.add(new DNGSizeOperation()); 52 | operationList.add(new DNGColorConversionOperation()); 53 | operationList.add(new ColorProfileOperation()); 54 | // operationList.add(new SharpenOperation()); 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /modules/processor/src/main/java/it/tidalwave/imageio/rawprocessor/mrw/MRWCurveOperation.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.rawprocessor.mrw; 24 | 25 | import it.tidalwave.imageio.util.Logger; 26 | import it.tidalwave.imageio.rawprocessor.PipelineArtifact; 27 | import it.tidalwave.imageio.rawprocessor.raw.CurveOperation; 28 | 29 | /*********************************************************************************************************************** 30 | * 31 | * @author Fabrizio Giudici 32 | * @version $Id$ 33 | * 34 | **********************************************************************************************************************/ 35 | public class MRWCurveOperation extends CurveOperation 36 | { 37 | private final static Logger logger = getLogger(MRWCurveOperation.class); 38 | 39 | /******************************************************************************************************************* 40 | * 41 | * @inheritDoc 42 | * 43 | ******************************************************************************************************************/ 44 | protected double getWhiteLevel (PipelineArtifact artifact) 45 | { 46 | logger.fine("getWhiteLevel()"); 47 | return 4095; // FIXME 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /modules/processor/src/main/java/it/tidalwave/imageio/rawprocessor/mrw/MRWProcessor.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.rawprocessor.mrw; 24 | 25 | import javax.annotation.Nonnull; 26 | import java.util.List; 27 | import it.tidalwave.imageio.rawprocessor.OperationSupport; 28 | import it.tidalwave.imageio.rawprocessor.raw.ColorProfileOperation; 29 | import it.tidalwave.imageio.rawprocessor.RAWProcessor; 30 | import it.tidalwave.imageio.rawprocessor.raw.DemosaicOperation; 31 | 32 | /*********************************************************************************************************************** 33 | * 34 | * @author Fabrizio Giudici 35 | * @version $Id$ 36 | * 37 | **********************************************************************************************************************/ 38 | public class MRWProcessor extends RAWProcessor 39 | { 40 | /******************************************************************************************************************* 41 | * 42 | * {@inheritDoc} 43 | * 44 | ******************************************************************************************************************/ 45 | protected void buildPipeline (@Nonnull final List operationList) 46 | { 47 | operationList.add(new MRWWhiteBalanceOperation()); 48 | // operationList.add(new MRWExposureOperation()); 49 | operationList.add(new MRWCurveOperation()); 50 | operationList.add(new DemosaicOperation()); 51 | // operationList.add(new MRWRotateOperation()); 52 | operationList.add(new MRWSizeOperation()); 53 | // operationList.add(new MRWColorConversionOperation()); 54 | operationList.add(new ColorProfileOperation()); 55 | // operationList.add(new SharpenOperation()); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /modules/processor/src/main/java/it/tidalwave/imageio/rawprocessor/nef/NEFCurveOperation.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.rawprocessor.nef; 24 | 25 | import javax.annotation.Nonnull; 26 | import it.tidalwave.imageio.util.Logger; 27 | import it.tidalwave.imageio.nef.NEFMetadata; 28 | import it.tidalwave.imageio.nef.NikonMakerNote3; 29 | import it.tidalwave.imageio.rawprocessor.PipelineArtifact; 30 | import it.tidalwave.imageio.rawprocessor.raw.CurveOperation; 31 | 32 | /*********************************************************************************************************************** 33 | * 34 | * @author Fabrizio Giudici 35 | * @version $Id$ 36 | * 37 | **********************************************************************************************************************/ 38 | public class NEFCurveOperation extends CurveOperation 39 | { 40 | private final static Logger logger = getLogger(NEFCurveOperation.class); 41 | 42 | /******************************************************************************************************************* 43 | * 44 | * @inheritDoc 45 | * 46 | ******************************************************************************************************************/ 47 | @Override 48 | protected double getWhiteLevel (final @Nonnull PipelineArtifact artifact) 49 | { 50 | logger.fine("getWhiteLevel()"); 51 | NEFMetadata metadata = (NEFMetadata)artifact.getRAWMetadata(); 52 | NikonMakerNote3 makerNote = metadata.getNikonMakerNote(); 53 | double whiteLevel; 54 | 55 | if (makerNote.isCompressionDataAvailable()) 56 | { 57 | whiteLevel = makerNote.getCompressionDataObject().getWhiteLevel(); 58 | logger.finer(">>>> whiteLevel from linearizationTable: %s", whiteLevel); 59 | } 60 | 61 | else 62 | { 63 | whiteLevel = super.getWhiteLevel(artifact); 64 | } 65 | 66 | return whiteLevel; 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /modules/processor/src/main/java/it/tidalwave/imageio/rawprocessor/nef/NEFRotateOperation.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.rawprocessor.nef; 24 | 25 | import javax.annotation.Nonnull; 26 | import it.tidalwave.imageio.util.Logger; 27 | import it.tidalwave.imageio.nef.NEFMetadata; 28 | import it.tidalwave.imageio.nef.NikonCaptureEditorMetadata; 29 | import it.tidalwave.imageio.rawprocessor.raw.RotateOperation; 30 | import it.tidalwave.imageio.rawprocessor.PipelineArtifact; 31 | 32 | /*********************************************************************************************************************** 33 | * 34 | * @author Fabrizio Giudici 35 | * @version $Id$ 36 | * 37 | **********************************************************************************************************************/ 38 | public class NEFRotateOperation extends RotateOperation 39 | { 40 | private final static Logger logger = getLogger(NEFRotateOperation.class); 41 | 42 | /******************************************************************************************************************* 43 | * 44 | * {@inheritDoc} 45 | * 46 | ******************************************************************************************************************/ 47 | @Override 48 | protected int getCameraOrientation (final @Nonnull PipelineArtifact artifact) 49 | { 50 | final NEFMetadata metadata = (NEFMetadata)artifact.getRAWMetadata(); 51 | final NikonCaptureEditorMetadata nceMetadata = (NikonCaptureEditorMetadata)metadata.getCaptureEditorMetadata(); 52 | return (nceMetadata != null) ? nceMetadata.getOrientation() : super.getCameraOrientation(artifact); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /modules/processor/src/main/java/it/tidalwave/imageio/rawprocessor/orf/ORFProcessor.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.rawprocessor.orf; 24 | 25 | import javax.annotation.Nonnull; 26 | import java.util.List; 27 | import it.tidalwave.imageio.rawprocessor.OperationSupport; 28 | import it.tidalwave.imageio.rawprocessor.RAWProcessor; 29 | import it.tidalwave.imageio.rawprocessor.raw.ColorProfileOperation; 30 | import it.tidalwave.imageio.rawprocessor.raw.DemosaicOperation; 31 | 32 | /*********************************************************************************************************************** 33 | * 34 | * @author Fabrizio Giudici 35 | * @version $Id$ 36 | * 37 | **********************************************************************************************************************/ 38 | public class ORFProcessor extends RAWProcessor 39 | { 40 | /******************************************************************************************************************* 41 | * 42 | * @inheritDoc 43 | * 44 | ******************************************************************************************************************/ 45 | protected void buildPipeline (@Nonnull final List operationList) 46 | { 47 | operationList.add(new ORFWhiteBalanceOperation()); 48 | // operationList.add(new ORFExposureOperation()); 49 | // operationList.add(new ComputeBlackLevelsOperation()); 50 | operationList.add(new ORFCurveOperation()); 51 | operationList.add(new DemosaicOperation()); 52 | operationList.add(new ORFSizeOperation()); 53 | operationList.add(new ORFColorConversionOperation()); 54 | operationList.add(new ColorProfileOperation()); 55 | // operationList.add(new SharpenOperation()); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /modules/processor/src/main/java/it/tidalwave/imageio/rawprocessor/pef/PEFCurveOperation.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.rawprocessor.pef; 24 | 25 | import it.tidalwave.imageio.pef.PentaxMakerNote; 26 | import it.tidalwave.imageio.util.Logger; 27 | import it.tidalwave.imageio.tiff.TIFFMetadataSupport; 28 | import it.tidalwave.imageio.tiff.IFD; 29 | import it.tidalwave.imageio.rawprocessor.PipelineArtifact; 30 | import it.tidalwave.imageio.rawprocessor.raw.CurveOperation; 31 | 32 | /*********************************************************************************************************************** 33 | * 34 | * @author Fabrizio Giudici 35 | * @version $Id$ 36 | * 37 | **********************************************************************************************************************/ 38 | public class PEFCurveOperation extends CurveOperation 39 | { 40 | /******************************************************************************************************************* 41 | * 42 | * @inheritDoc 43 | * 44 | ******************************************************************************************************************/ 45 | protected int[] getBlackLevel (PipelineArtifact artifact) 46 | { 47 | PentaxMakerNote pefMakernote = (PentaxMakerNote)artifact.getRAWMetadata().getMakerNote(); 48 | int[] blackLevels = pefMakernote.getBlackLevel(); 49 | int blackLevel = (blackLevels[0] + blackLevels[1] + blackLevels[2] + blackLevels[3]) / 4; 50 | return new int[] { blackLevel, blackLevel, blackLevel }; 51 | } 52 | 53 | /******************************************************************************************************************* 54 | * 55 | * @inheritDoc 56 | * 57 | ******************************************************************************************************************/ 58 | protected double getWhiteLevel (PipelineArtifact artifact) 59 | { 60 | return 4095; // FIXME 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /modules/processor/src/main/java/it/tidalwave/imageio/rawprocessor/pef/PEFProcessor.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.rawprocessor.pef; 24 | 25 | import javax.annotation.Nonnull; 26 | import java.util.List; 27 | import it.tidalwave.imageio.rawprocessor.OperationSupport; 28 | import it.tidalwave.imageio.rawprocessor.RAWProcessor; 29 | import it.tidalwave.imageio.rawprocessor.raw.ColorProfileOperation; 30 | import it.tidalwave.imageio.rawprocessor.raw.DemosaicOperation; 31 | 32 | /*********************************************************************************************************************** 33 | * 34 | * @author Fabrizio Giudici 35 | * @version $Id$ 36 | * 37 | **********************************************************************************************************************/ 38 | public class PEFProcessor extends RAWProcessor 39 | { 40 | /******************************************************************************************************************* 41 | * 42 | * {@inheritDoc} 43 | * 44 | ******************************************************************************************************************/ 45 | protected void buildPipeline (@Nonnull final List operationList) 46 | { 47 | operationList.add(new PEFWhiteBalanceOperation()); 48 | // operationList.add(new PEFExposureOperation()); 49 | operationList.add(new PEFCurveOperation()); 50 | operationList.add(new DemosaicOperation()); 51 | operationList.add(new PEFSizeOperation()); 52 | operationList.add(new ColorProfileOperation()); 53 | // operationList.add(new SharpenOperation()); 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /modules/processor/src/main/java/it/tidalwave/imageio/rawprocessor/raf/RAFCurveOperation.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.rawprocessor.raf; 24 | 25 | import it.tidalwave.imageio.pef.PentaxMakerNote; 26 | import it.tidalwave.imageio.util.Logger; 27 | import it.tidalwave.imageio.tiff.TIFFMetadataSupport; 28 | import it.tidalwave.imageio.tiff.IFD; 29 | import it.tidalwave.imageio.rawprocessor.PipelineArtifact; 30 | import it.tidalwave.imageio.rawprocessor.raw.CurveOperation; 31 | 32 | /*********************************************************************************************************************** 33 | * 34 | * @author Fabrizio Giudici 35 | * @version $Id$ 36 | * 37 | **********************************************************************************************************************/ 38 | public class RAFCurveOperation extends CurveOperation 39 | { 40 | /******************************************************************************************************************* 41 | * 42 | * @inheritDoc 43 | * 44 | ******************************************************************************************************************/ 45 | protected int[] getBlackLevel (PipelineArtifact artifact) 46 | { 47 | int blackLevel = 0; // TODO 48 | return new int[] { blackLevel, blackLevel, blackLevel }; 49 | } 50 | 51 | /******************************************************************************************************************* 52 | * 53 | * @inheritDoc 54 | * 55 | ******************************************************************************************************************/ 56 | protected double getWhiteLevel (PipelineArtifact artifact) 57 | { 58 | return 8191; // FIXME 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /modules/processor/src/main/java/it/tidalwave/imageio/rawprocessor/raf/RAFProcessor.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.rawprocessor.raf; 24 | 25 | import javax.annotation.Nonnull; 26 | import java.util.List; 27 | import it.tidalwave.imageio.rawprocessor.OperationSupport; 28 | import it.tidalwave.imageio.rawprocessor.RAWProcessor; 29 | import it.tidalwave.imageio.rawprocessor.raw.ColorProfileOperation; 30 | 31 | /*********************************************************************************************************************** 32 | * 33 | * @author Fabrizio Giudici 34 | * @version $Id$ 35 | * 36 | **********************************************************************************************************************/ 37 | public class RAFProcessor extends RAWProcessor 38 | { 39 | /******************************************************************************************************************* 40 | * 41 | * {@inheritDoc} 42 | * 43 | ******************************************************************************************************************/ 44 | protected void buildPipeline (@Nonnull final List operationList) 45 | { 46 | operationList.add(new RAFWhiteBalanceOperation()); 47 | // operationList.add(new RAFExposureOperation()); 48 | operationList.add(new RAFCurveOperation()); 49 | operationList.add(new RAFDemosaicOperation()); 50 | operationList.add(new RAFRotateOperation()); 51 | operationList.add(new RAFSizeOperation()); 52 | operationList.add(new ColorProfileOperation()); 53 | // operationList.add(new SharpenOperation()); 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /modules/processor/src/main/java/it/tidalwave/imageio/rawprocessor/raw/ExposureOperation.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.rawprocessor.raw; 24 | 25 | import it.tidalwave.imageio.raw.Source; 26 | import it.tidalwave.imageio.rawprocessor.PipelineArtifact; 27 | import it.tidalwave.imageio.rawprocessor.OperationSupport; 28 | 29 | /*********************************************************************************************************************** 30 | * 31 | * @author Fabrizio Giudici 32 | * @version $Id$ 33 | * 34 | **********************************************************************************************************************/ 35 | public class ExposureOperation extends OperationSupport 36 | { 37 | /******************************************************************************************************************* 38 | * 39 | * 40 | ******************************************************************************************************************/ 41 | public ExposureOperation() 42 | { 43 | super(Source.Type.RAW); 44 | } 45 | 46 | /******************************************************************************************************************* 47 | * 48 | * @inheritDoc 49 | * 50 | ******************************************************************************************************************/ 51 | public void process (PipelineArtifact artifact) 52 | { 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /modules/processor/src/main/java/it/tidalwave/imageio/rawprocessor/raw/SharpenOperation.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.rawprocessor.raw; 24 | 25 | import it.tidalwave.imageio.raw.Source.Type; 26 | import it.tidalwave.imageio.rawprocessor.OperationSupport; 27 | import it.tidalwave.imageio.rawprocessor.PipelineArtifact; 28 | 29 | /*********************************************************************************************************************** 30 | * 31 | * @author Fabrizio Giudici 32 | * @version $Id$ 33 | * 34 | **********************************************************************************************************************/ 35 | public class SharpenOperation extends OperationSupport 36 | { 37 | /******************************************************************************************************************* 38 | * 39 | * 40 | ******************************************************************************************************************/ 41 | public SharpenOperation() 42 | { 43 | super(Type.RAW, Type.NORMAL); 44 | } 45 | 46 | /******************************************************************************************************************* 47 | * 48 | * @inheritDoc 49 | * 50 | ******************************************************************************************************************/ 51 | public void process (PipelineArtifact artifact) 52 | { 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /modules/processor/src/main/java/it/tidalwave/imageio/rawprocessor/raw/WhiteBalanceOperation.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.rawprocessor.raw; 24 | 25 | import it.tidalwave.imageio.rawprocessor.PipelineArtifact; 26 | import it.tidalwave.imageio.rawprocessor.OperationSupport; 27 | 28 | /*********************************************************************************************************************** 29 | * 30 | * @author Fabrizio Giudici 31 | * @version $Id$ 32 | * 33 | **********************************************************************************************************************/ 34 | public class WhiteBalanceOperation extends OperationSupport 35 | { 36 | /******************************************************************************************************************* 37 | * 38 | * @inheritDoc 39 | * 40 | ******************************************************************************************************************/ 41 | public void process (PipelineArtifact artifact) 42 | { 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /modules/processor/src/main/java/it/tidalwave/imageio/rawprocessor/srf/SRFProcessor.java: -------------------------------------------------------------------------------- 1 | /*********************************************************************************************************************** 2 | * 3 | * jrawio - a Java(TM) Image I/O SPI Provider for Camera Raw files 4 | * Copyright (C) 2003 - 2016 by Tidalwave s.a.s. 5 | * 6 | *********************************************************************************************************************** 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 9 | * the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 14 | * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations under the License. 16 | * 17 | *********************************************************************************************************************** 18 | * 19 | * WWW: http://jrawio.rawdarkroom.org 20 | * SCM: https://kenai.com/hg/jrawio~src 21 | * 22 | **********************************************************************************************************************/ 23 | package it.tidalwave.imageio.rawprocessor.srf; 24 | 25 | import javax.annotation.Nonnull; 26 | import java.util.List; 27 | import it.tidalwave.imageio.rawprocessor.OperationSupport; 28 | import it.tidalwave.imageio.rawprocessor.RAWProcessor; 29 | import it.tidalwave.imageio.rawprocessor.raw.ColorProfileOperation; 30 | import it.tidalwave.imageio.rawprocessor.raw.DemosaicOperation; 31 | import it.tidalwave.imageio.rawprocessor.raw.CurveOperation; 32 | 33 | /*********************************************************************************************************************** 34 | * 35 | * @author Fabrizio Giudici 36 | * @version $Id$ 37 | * 38 | **********************************************************************************************************************/ 39 | public class SRFProcessor extends RAWProcessor 40 | { 41 | /******************************************************************************************************************* 42 | * 43 | * {@inheritDoc} 44 | * 45 | ******************************************************************************************************************/ 46 | protected void buildPipeline (@Nonnull final List operationList) 47 | { 48 | // operationList.add(new NEFWhiteBalanceOperation()); 49 | // operationList.add(new NEFExposureOperation()); 50 | // operationList.add(new ComputeBlackLevelsOperation()); 51 | operationList.add(new CurveOperation()); 52 | operationList.add(new DemosaicOperation()); 53 | // operationList.add(new NEFSizeOperation()); 54 | operationList.add(new ColorProfileOperation()); 55 | // operationList.add(new SharpenOperation()); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /modules/processor/src/main/nbm/manifest.mf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tidalwave-it/jrawio-src/0d632ced58c00a12b30effe31f133e50cbf74913/modules/processor/src/main/nbm/manifest.mf -------------------------------------------------------------------------------- /modules/processor/src/main/resources/it/tidalwave/imageio/rawprocessor/nef/NEFSizeOperation.properties: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # 3 | # jrawio - a Java(TM) ImageIO API Spi Provider for RAW files 4 | # ---------------------------------------------------------- 5 | # 6 | # Copyright (C) 2003 - 2016 by Fabrizio Giudici 7 | # Project home page: http://jrawio.dev.java.net 8 | # 9 | ############################################################################### 10 | # 11 | # MIT License notice 12 | # 13 | # Permission is hereby granted, free of charge, to any person obtaining a copy 14 | # of this software and associated documentation files (the "Software"), to deal 15 | # in the Software without restriction, including without limitation the rights 16 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 17 | # copies of the Software, and to permit persons to whom the Software is 18 | # furnished to do so, subject to the following conditions: 19 | # 20 | # The above copyright notice and this permission notice shall be included in 21 | # all copies or substantial portions of the Software. 22 | # 23 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 24 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 25 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 26 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 27 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 28 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 29 | # SOFTWARE. 30 | # 31 | ############################################################################### 32 | # 33 | # $Id$ 34 | # 35 | ############################################################################### 36 | 37 | # model w h l r t b 38 | 39 | E5400: 2592 1944 0 0 0 0 40 | E5700: 2560 1920 0 0 0 0 41 | E8700: 3264 2448 8 8 3 3 42 | E8800: 3264 2448 8 8 3 3 43 | 44 | NIKON\ D1: 2000 1312 6 6 6 6 45 | NIKON\ D1H: 2000 1312 6 6 6 6 46 | NIKON\ D1X: 3008 1960 6 6 6 6 47 | NIKON\ D2H: 2464 1632 16 16 8 8 48 | NIKON\ D2Hs: 2464 1632 16 16 8 8 49 | NIKON\ D2X: 4288 2848 16 16 10 10 50 | NIKON\ D2Xs: 4288 2848 16 16 10 10 51 | NIKON\ D3: 4256 2832 16 16 6 6 52 | NIKON\ D3X: 6048 4032 16 16 6 6 53 | NIKON\ D40: 3008 2000 16 16 7 7 54 | NIKON\ D40X: 3872 2592 16 16 12 12 55 | NIKON\ D50: 3008 2000 16 16 7 7 56 | NIKON\ D60: 3872 2592 16 16 12 12 57 | NIKON\ D70: 3008 2000 16 16 7 7 58 | NIKON\ D70s: 3008 2000 16 16 7 7 59 | NIKON\ D80: 3872 2592 16 16 12 12 60 | NIKON\ D90: 4288 2848 32 32 10 10 61 | NIKON\ D100: 3008 2000 13 13 12 12 62 | NIKON\ D200: 3872 2592 16 16 12 12 63 | NIKON\ D300: 4288 2848 32 32 10 10 64 | NIKON\ D700: 4256 2832 16 16 6 6 65 | NIKON\ D3000: 3872 2592 16 16 12 12 66 | NIKON\ D5000: 4288 2848 32 32 10 10 67 | -------------------------------------------------------------------------------- /modules/processor/src/main/resources/it/tidalwave/imageio/rawprocessor/version.properties: -------------------------------------------------------------------------------- 1 | version = ${project.version}.${buildNumber} 2 | -------------------------------------------------------------------------------- /modules/processor/src/test/resources/it/tidalwave/imageio/log.properties: -------------------------------------------------------------------------------- 1 | handlers=java.util.logging.FileHandler, java.util.logging.ConsoleHandler 2 | 3 | java.util.logging.FileHandler.level = ALL 4 | java.util.logging.FileHandler.pattern = target/logs/jrawio.log 5 | java.util.logging.FileHandler.limit = 10000000 6 | java.util.logging.FileHandler.count = 20 7 | java.util.logging.FileHandler.formatter = it.tidalwave.imageio.SingleLineLogFormatter 8 | 9 | java.util.logging.ConsoleHandler.level = ALL 10 | java.util.logging.ConsoleHandler.formatter = it.tidalwave.imageio.SingleLineLogFormatter 11 | 12 | it.tidalwave.level = ALL 13 | -------------------------------------------------------------------------------- /nbactions.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 25 | 26 | build 27 | build-with-dependencies 28 | 29 | install 30 | 31 | 32 | true 33 | 34 | 35 | 36 | build-with-dependencies 37 | . 38 | 39 | reactor:make 40 | 41 | 42 | ${groupId}:${artifactId} 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /src/assemble/bin.xml: -------------------------------------------------------------------------------- 1 | 23 | 24 | 25 | bin 26 | 27 | tar.gz 28 | 29 | 30 | 31 | . 32 | / 33 | 34 | README* 35 | LICENSE* 36 | NOTICE* 37 | 38 | 39 | 40 | modules/jrawio-all/target 41 | / 42 | 43 | it.tidalwave.imageio.raw*.jar 44 | 45 | 46 | *-tests.jar 47 | 48 | 49 | 50 | modules/jrawio-nbm/target 51 | / 52 | 53 | *.nbm 54 | 55 | 56 | 57 | target/site/apidocs 58 | /apidocs 59 | 60 | ** 61 | 62 | 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /src/assemble/project.xml: -------------------------------------------------------------------------------- 1 | 23 | 24 | 25 | project 26 | 27 | tar.gz 28 | 29 | 30 | 31 | . 32 | / 33 | true 34 | 35 | **/target/** 36 | .hg/** 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /src/header/header.txt: -------------------------------------------------------------------------------- 1 | 2 | ${description} 3 | Copyright (C) ${inceptionYear}-2011 by Tidalwave s.a.s. 4 | 5 | ********************************************************************************************************************** 6 | 7 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 8 | the License. You may obtain a copy of the License at 9 | 10 | http://www.apache.org/licenses/LICENSE-2.0 11 | 12 | Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 13 | an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | specific language governing permissions and limitations under the License. 15 | 16 | ********************************************************************************************************************** 17 | 18 | WWW: ${url} 19 | SCM: ${scm} 20 | 21 | -------------------------------------------------------------------------------- /src/header/javadoc.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 25 | 26 | /*********************************************************************************************************************** 27 | * 28 | **********************************************************************************************************************/ 29 | 30 | (\s|\t)*/\*.*$ 31 | .*\*/(\s|\t)*$ 32 | true 33 | true 34 | 35 | 36 | -------------------------------------------------------------------------------- /src/header/xml.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 25 | 26 | 27 | 28 | ]]> 29 | $]]> 30 | 31 | (\s|\t)*$]]> 32 | false 33 | true 34 | 35 | 36 | --------------------------------------------------------------------------------