Commit graph

56 commits

Author SHA1 Message Date
fredkiefer
383d95dc44 Add MacOSX 10.4 methods and constants.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@25359 72102866-910b-0410-8b05-ffd578937521
2007-07-26 17:55:36 +00:00
rfm
6f754401c4 Document some typedefs
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@24351 72102866-910b-0410-8b05-ffd578937521
2007-01-15 10:18:24 +00:00
tracy454
13cf685b28 Autogsdoc comments for Source/NSBitmapImageRep.m
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@24196 72102866-910b-0410-8b05-ffd578937521
2006-12-10 09:46:21 +00:00
tracy454
fe851e6710 Change Log
Mon. 20-Nov-2006 Mark Tracy <tracy454 at concentric dot net>
Many changes related to bitmap images

1.  NSBitmapImateRep attribute global strings were not defined
    Fix: add definitions to externs.h, and declarations to NSBitmapImageRep.h
    Comment: Two strings defined in Cocoa were commented out: NSImageColorSyncData
      is proprietary to Apple, and NSImageEXIFData has no support elsewhere in
      GNUstep. I propose adding GSImageICCProfileData if and when color management
      is added to GNUstep.

2.  LZW compression in TIFF was disabled for lack of a test of its availability
    Fix: Implement NSTiffIsCodecConfigured(codec) in tiff.m
    Comment: As of libtiff-3.7.0, there is a function call in the API to test
      availability at runtime. For libtiff-3.6.0 (earlier?) there are macros
      #defined in tiffconf.h. The implementation check the library version at
      compile time, and uses one of the two methods. I have not tested the 
      second method for lack of an installation of an old libtiff.

3.  -canCompressUsing: relied on a static list of capabilities
    Fix: Use the new NSTiffIsCodecConfigured(codec) in NSBitmapImageRep.m
    Comment: The static list could be wrong, as it was on my system. Also
      eliminate the supports_lzw_compression flag.

4.  +getTIFFCompressionTypes:count: relied on a static list of compressors.
    Fix: Use the new NSTiffIsCodecConfigured(codec) in NSBitmapImageRep.m
    Comment: Compares GNUstep supported compressors against actual availability.
      Also change the private instance methods _localFromCompressionType and 
      _compressionTypeFromLocal to private class methods so that they can be used
      in -initWithTIFFImage:number: and -TIFFRepresentationUsingCompression:factor:
      and +getTIFFCompressionTypes:count: This is probably a clumsy implementation
      but it works.

5.  -setProperty:toValue: and -valueForProperty: were not implemented
    Fix: Add a new instance variable NSMutableDictionary * _properties to 
      NSBitmapImageRep.h and implemented accessors in NSBitmapImageRep.m. Patch
      -_initFromTIFFImage to set compression type and factor in _properties.
    Comment: This feature is used to pass options to and from JPEG, PNG, TIFF, and
      GIF in Cocoa, although the docs are kind of vague. In one case the Cocoa docs
      said the properties were set when reading a TIFF, but the implementation
      didn't; I chose to implement the docs. Cocoa does use properties when 
      exporting bitmaps, so I implemented that.

6.  Checked and updated NSBitmapImageFileType in NSBitmapImageRep.h
    Fix: confirmed the enumeration values against Cocoa, and added 
      NSJPEG2000FileType = 5
    Comment: JPEG-2000 is not implemented, just reserved a space for it.

7.  -representationUsingType:properties: was not implemented
    Fix: Implement export of TIFF, JPEG, GIF and PNG in NSBitmapImage.m
    Comment: See the change notes for JPEG, GIF, and PNG for more. BMP and JPEG-2000
      are not implemented; they just log a message to that effect. As apparently
      Cocoa does it this way, if you pass nil for properties, it falls back to 
      the internal _properties, and if that is empty, there are some safe defaults.

8.  +representationfOfImageRepsInArray:UsingType:properties: was not implemented
    Fix: Partially implement in NSBitmapImageRep.m
    Comment: I just stole the incomplete code from
      +TIFFRepresentationOfImageRepsInArray: since I have yet to find an explanation
      of how this really ought to work.

9.  JPEG export didn't handle alpha channel, properties or errors.
    Fix: Add -_JPEGRepresentationWithProperties:errorMessage: to
      NSBitmapImageRep+JPEG.h and greatly rework Nicolas Roard's code in
      NSBitmapImageRep+JPEG.m. Patch -_initBitmapFromJPEG:errorMessage to
      write properties.
    Comment: Major rewrite of Nicolas Roard's JPEG export code. 
    To do: Support for planar bitmaps and support for colorspaces other than
      RGB(A).

10. PNG export not implemented
    Fix: Add -_PNGRepresentationWithProperties: to
      NSBitmapImageRep+PNG.h and implement NSBitmapImageRep+PNG.m
    Comment: No support yet for planar bitmaps. Only supports 
      NS*WhiteColorSpace and NS*RGBColorSpace. Does support alpha. Support for
      reading and writing NSImageGamma is experimental. In keeping with Cocoa,
      the property NSImageGamma ranges from 0.0 to 1.0; representing the range
      of minimum supported gamma to maximum supported gamma, in this case 1.0
      to 2.5. This is in contrast to GNUstep where by convention the property
      would range from 0.0 to 255.0.
    To do: proper error message support

11. GIF export not implemented
    Fix: Add -_GIFRepresentationWithPropterties:errorMessage: to
      NSBitmapImageRep+GIF.h and implement in NSBitmapImageRep+GIF.m
    Comments: Supports only RGB(A) colorspaces, but ignores alpha. Supports
      planar or interleaved bitmaps. Supports properties NSImageRGBColorTable.

12. -_initBitmapFromGIF:errorMessage: did not support transparency
    Fix: Don't ignore control blocks in NSBitmapImageRep+GIF.m; check for
      transparency.
    Comment: If a transparent color is found, it adds an alpha channel to the 
      bitmap. Also, save the color table in properties.

13. -_initBitmapFromGIF:errorMessage: would show the last image in a 
      multi-image GIF file
    Fix: Break the parsing loop after the first image in NSBitmapImageRep+GIF.m
    Comment: Also check for frame duration, and set that property. There is not
      yet any support for animated GIF. This will require some additional 
      infrastructure, and I won't do it unless asked.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@24140 72102866-910b-0410-8b05-ffd578937521
2006-11-21 06:36:26 +00:00
rfm
cc3cafa874 tidyups and minor theme tiling updates.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@23871 72102866-910b-0410-8b05-ffd578937521
2006-10-15 08:34:47 +00:00
gcasa
1a8528922e Correction for GSNibCompatibility. Added coding to classes for keyed archiving.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@23225 72102866-910b-0410-8b05-ffd578937521
2006-08-09 01:37:32 +00:00
Fabien_
3b5502ffa8 Improved documentation
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@22037 72102866-910b-0410-8b05-ffd578937521
2005-11-18 14:38:23 +00:00
fedor
db3c52eab8 Update FSF Address.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@21259 72102866-910b-0410-8b05-ffd578937521
2005-05-26 02:52:46 +00:00
fedor
14d484f4a7 * configure.ac: Check for libgif
* Source/NSBitmapImageRep+GIF.m: Support libgif
* Source/NSBitmapImageRem.m: Idem. (Fixes Bug #12362).


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@20936 72102866-910b-0410-8b05-ffd578937521
2005-03-21 16:12:02 +00:00
alexm
6bc257820a 2005-01-18 16:39 Alexander Malmberg <alexander@malmberg.org>
* Source/NSBitmapImageRep.m
	(-TIFFRepresentationUsingCompression:factor:): Don't use pointer
	comparisons to compare strings. Handle both device and calibrated
	colorspaces. Warn if the colorspace isn't recognized.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@20579 72102866-910b-0410-8b05-ffd578937521
2005-01-18 15:35:51 +00:00
FredKiefer
45b6e203cd Some more keyed decoding.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@20216 72102866-910b-0410-8b05-ffd578937521
2004-10-10 22:36:02 +00:00
alexm
3c759b846c Document GSReadRect and update users.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@19801 72102866-910b-0410-8b05-ffd578937521
2004-07-30 13:58:03 +00:00
alexm
c172a7ed18 Remove obsolete libwraster image loading hacks.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@18533 72102866-910b-0410-8b05-ffd578937521
2004-02-03 22:42:15 +00:00
alexm
15d198201b Add GIF loader.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@18339 72102866-910b-0410-8b05-ffd578937521
2004-01-08 18:43:49 +00:00
alexm
20190d5c10 Add new image loaders.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@18331 72102866-910b-0410-8b05-ffd578937521
2004-01-07 23:53:15 +00:00
fedor
bfe2bdb1f2 Implement GSReadRect and initWithFocusedViewRect:
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@17687 72102866-910b-0410-8b05-ffd578937521
2003-09-20 02:57:45 +00:00
fedor
bfc26f3c85 Better error checking and documentation
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@17638 72102866-910b-0410-8b05-ffd578937521
2003-09-08 02:07:53 +00:00
FredKiefer
c172aac0ad [canInitWithData:], [imageRepsWithData:] and [initWithData:]
protect against data being nil. [imageRepsWithFile:] check if the
file exists and only return an array when it contains objects.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@17591 72102866-910b-0410-8b05-ffd578937521
2003-09-01 16:58:27 +00:00
ayers
9732999fd8 Header reorganization - Please refer to ChangeLog
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@17408 72102866-910b-0410-8b05-ffd578937521
2003-07-31 23:52:10 +00:00
FredKiefer
8a0dd746ba In [_initFromTIFFImage:number:] free the info returned by
NSTiffGetInfo().


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@17342 72102866-910b-0410-8b05-ffd578937521
2003-07-25 22:54:28 +00:00
fedor
fc402789db Include <> -> ""
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16917 72102866-910b-0410-8b05-ffd578937521
2003-06-13 15:01:12 +00:00
FredKiefer
d02bdec0cf In [initWithBitmapDataPlanes:...bitsPerPixel:],
[getBitmapDataPlanes:] and [copyWithZone:] changed type of i
to unsigned int.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16887 72102866-910b-0410-8b05-ffd578937521
2003-06-08 00:26:18 +00:00
FredKiefer
e59a6eb372 In [imageUnfilteredFileTypes] add the tiff entries always to the
front of the list. As the standard GNUstep images are in this
format, this will speed up image loading.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16200 72102866-910b-0410-8b05-ffd578937521
2003-03-18 23:47:23 +00:00
FredKiefer
57ecbaa14c In [TIFFRepresentationUsingCompression:factor:] set extraSamples
and correct compression type if 0.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@15245 72102866-910b-0410-8b05-ffd578937521
2002-12-05 00:37:01 +00:00
fedor
47ccc877bc Warning and if check fixes
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@14944 72102866-910b-0410-8b05-ffd578937521
2002-11-06 15:44:36 +00:00
fedor
c97710e1f6 New AppKit events. Updates for autogsdoc
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@12217 72102866-910b-0410-8b05-ffd578937521
2002-01-26 04:14:38 +00:00
fedor
c51f4265da Markup for autogsdoc
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@11788 72102866-910b-0410-8b05-ffd578937521
2001-12-17 16:51:51 +00:00
fedor
2437b86d25 Fix image encoding
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@10827 72102866-910b-0410-8b05-ffd578937521
2001-09-01 04:20:55 +00:00
nico
50928c24bd Fixed crash on checking whether it can init with data, if data is not
actually a tiff


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@10811 72102866-910b-0410-8b05-ffd578937521
2001-08-30 17:26:47 +00:00
FredKiefer
8615853b77 Implemented [TIFFRepresentationOfImageRepsInArray] and
[TIFFRepresentationOfImageRepsInArray:usingCompression:factor:]


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@10678 72102866-910b-0410-8b05-ffd578937521
2001-08-11 18:33:40 +00:00
fedor
7a02fcb251 Fixes to compile shared on Windows
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@10611 72102866-910b-0410-8b05-ffd578937521
2001-07-30 21:30:51 +00:00
nico
c2846d5458 Temporary bug fix to make it work again for non-tiff files
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@10171 72102866-910b-0410-8b05-ffd578937521
2001-06-12 22:19:10 +00:00
nico
d8aefb5b32 Indentation and trivial efficiency fixes
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@10170 72102866-910b-0410-8b05-ffd578937521
2001-06-12 22:15:49 +00:00
nico
6df0cb7bb5 Tidied indentation
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@10121 72102866-910b-0410-8b05-ffd578937521
2001-06-08 22:51:11 +00:00
FredKiefer
9cd3d8198e Moved code to create the _imageData into
[initWithBitmapDataPlanes:...] and corrected [copyWithZone:]


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@10118 72102866-910b-0410-8b05-ffd578937521
2001-06-08 16:44:05 +00:00
FredKiefer
a6c1820286 Removed methods implemented by superclass.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@10114 72102866-910b-0410-8b05-ffd578937521
2001-06-07 21:56:19 +00:00
FredKiefer
fd184f1c92 Dummy implementation for new methods.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@8430 72102866-910b-0410-8b05-ffd578937521
2000-12-24 14:06:06 +00:00
FredKiefer
6e09fd2f0c Adopted to changes in header file.
Moved code from [TIFFRepresentation] to
[TIFFRepresentationUsingCompression:factor:] and call this.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@8423 72102866-910b-0410-8b05-ffd578937521
2000-12-23 14:21:34 +00:00
fedor
b9de76dad5 Image improvements.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@6481 72102866-910b-0410-8b05-ffd578937521
2000-04-18 16:58:14 +00:00
fedor
66f98c03eb View display an tiff improvements
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@6463 72102866-910b-0410-8b05-ffd578937521
2000-04-13 19:23:16 +00:00
fedor
5b6b7b366b Update draw
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@5651 72102866-910b-0410-8b05-ffd578937521
2000-01-03 16:05:22 +00:00
fedor
593a51a67d opaqueness check
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@5636 72102866-910b-0410-8b05-ffd578937521
1999-12-28 20:26:07 +00:00
fedor
745d515d38 More imaging and compositing stuff
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@5635 72102866-910b-0410-8b05-ffd578937521
1999-12-28 19:20:45 +00:00
richard
7518839b85 Image encoding support - first cut
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@5633 72102866-910b-0410-8b05-ffd578937521
1999-12-28 16:02:01 +00:00
richard
563c98aa8d Tidyup
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@4033 72102866-910b-0410-8b05-ffd578937521
1999-04-06 14:09:13 +00:00
richard
55b55d3fee Merged in 'dawn' CVS branch
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@3827 72102866-910b-0410-8b05-ffd578937521
1999-03-02 08:58:30 +00:00
scottc
424b73783b Convert to the GNUstep makefile package.
The config.h files should not be installed with the other
header files; it is only used for compilation, so the source
files should include it not the header files.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@2439 72102866-910b-0410-8b05-ffd578937521
1997-09-23 22:43:24 +00:00
ovidiu
fd10203c7f Fixes to allow the library compile under NeXT PDO.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@2396 72102866-910b-0410-8b05-ffd578937521
1997-08-27 21:20:19 +00:00
netcrep
d5fd123408 Header files reorganized. All the definitions were moved in appropiate files.
Each header file includes only the header files it needs and it uses
@class to forward reference a class.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@2189 72102866-910b-0410-8b05-ffd578937521
1997-02-18 00:29:25 +00:00
netcrep
1049f1f10f Additional NSImage and NSBitmapImageRep work.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@2074 72102866-910b-0410-8b05-ffd578937521
1997-01-31 20:14:40 +00:00