| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
This is a .NET C# project that reads the raw CR2 files from CANON cameras.
For the image compression, this book was helpful: JPEG: Still Image Data Compression Standard by Pennebaker, William B., Mitchell, Joan L.
Here's sample test code to verify the raw image size, from my Canon 7D:
using (var fileStream = File.Open(FileName, FileMode.Open, FileAccess.Read))
using (var binaryReader = new BinaryReader(fileStream))
{
var rawImage = new RawImage(binaryReader);
var directory = rawImage.Directories.Last();
var data = directory.Entries.Single(e => e.TagId == 0x0111).ValuePointer;
var length = directory.Entries.Single(e => e.TagId == 0x0117).ValuePointer;
var strips = directory.Entries.Single(e => e.TagId == 0xC640 && e.TagType == 3).ValuePointer;
binaryReader.BaseStream.Seek(strips, SeekOrigin.Begin);
var x = binaryReader.ReadUInt16();
var y = binaryReader.ReadUInt16();
var z = binaryReader.ReadUInt16();
Assert.AreEqual(2, x);
Assert.AreEqual(1728, y);
Assert.AreEqual(1904, z);
binaryReader.BaseStream.Seek(data, SeekOrigin.Begin);
var startOfImage = new StartOfImage(binaryReader, data, length);
var lossless = startOfImage.StartOfFrame;
Assert.AreEqual(14, lossless.Precision);
Assert.AreEqual(4, lossless.Components.Length);
Assert.AreEqual(1340, lossless.SamplesPerLine);
Assert.AreEqual(3516, lossless.ScanLines);
}| Back | FazBrowse Home | New Git URL |