Mercurial > octave-libtiff
view scripts/io/Tiff.m @ 31131:7349994f30f8
Tiff: fixed the first test to use a single-pixel image
* Tiff.m: modified the test to use an image with one pixel instead
of an empty image.
* __tiff__.cc: fixed bugs in PlanarConfiguration tag and in type checking
for writeEncodedStrip.
author | magedrifaat <magedrifaat@gmail.com> |
---|---|
date | Mon, 25 Jul 2022 04:15:18 +0200 |
parents | 7851c5b9c950 |
children | c66f7c227e50 |
line wrap: on
line source
classdef Tiff properties (Constant = true) TagID = struct( "SubFileType", 254, "ImageWidth", 256, "ImageLength", 257, "BitsPerSample", 258, "Compression", 259, "Photometric", 262, "Thresholding", 263, "FillOrder", 266, "DocumentName", 269, "ImageDescription", 270, "Make", 271, "Model", 272, "StripOffsets", 273, "Orientation", 274, "SamplesPerPixel", 277, "RowsPerStrip", 278, "StripByteCounts", 279, "MinSampleValue", 280, "MaxSampleValue", 281, "XResolution", 282, "YResolution", 283, "PlanarConfiguration", 284, "PageName", 285, "XPosition", 286, "YPosition", 287, "GrayResponseUnit", 290, 'GrayResponseCurve', 291, "Group3Options", 292, "Group4Options", 293, "ResolutionUnit", 296, "PageNumber", 297, "TransferFunction", 301, "Software", 305, "DateTime", 306, "Artist", 315, "HostComputer", 316, "WhitePoint", 318, "PrimaryChromaticities", 319, "ColorMap", 320, "HalfToneHints", 321, "TileWidth", 322, "TileLength", 323, "TileOffsets", 324, "TileByteCounts", 325, "SubIFD", 330, "InkSet", 332, "InkNames", 333, "NumberOfInks", 334, "DotRange", 336, "TargetPrinter", 337, "ExtraSamples", 338, "SampleFormat", 339, "SMinSampleValue", 340, "SMaxSampleValue", 341, "YCbCrCoefficients", 529, "YCbCrSubSampling", 530, "YCbCrPositioning", 531, "ReferenceBlackWhite", 532, "XMP", 700, "ImageDepth", 32997, "Copyright", 33432, "RichTIFFIPTC", 33723, "Photoshop", 34377, "ICCProfile", 34675, "SToNits", 37439, "JPEGQuality", 65537, "JPEGColorMode", 65538, "ZipQuality", 65557, "SGILogDataFmt", 65560 ) endproperties properties (Access = private) tiff_handle endproperties methods function t = Tiff (filename, mode="r") if (nargin == 0 || nargin > 2) % print_usage(); error("Usage: Tiff(filename[, mode])"); endif t.tiff_handle = __open_tiff__ (filename, mode); endfunction function close (t) __close_tiff__ (t.tiff_handle); endfunction function tag = getTag (t, tag_name) tag = __tiff_get_tag__ (t.tiff_handle, tag_name); endfunction function setTag (t, tag_name, tag_value) __tiff_set_tag__ (t.tiff_handle, tag_name, tag_value); endfunction function argout = read (t) argout = __tiff_read__ (t.tiff_handle); endfunction function writeEncodedStrip (t, stripNumber, imageData) __tiff_write_encoded_strip__ (t.tiff_handle, stripNumber, imageData); endfunction % TODO(maged): add documentation and make print_usage work endmethods endclassdef ## test one-pixel image %!testif HAVE_TIFF %! filename = [tempname() ".tif"]; %! unwind_protect %! a = Tiff (filename, "w"); %! setTag(a, "ImageWidth", 1); %! setTag(a, "ImageLength", 1); %! setTag(a, "BitsPerSample", 8); %! data = uint8([255]); %! writeEncodedStrip(a, 1, data); %! a.close (); %! a = Tiff (filename, "r"); %! data2 = a.read(); %! assert (all (size(data) == [1, 1])); %! assert (data(1) == 255); %! a.close (); %! unwind_protect_cleanup %! unlink (filename); %! end_unwind_protect