Commit graph

34 commits

Author SHA1 Message Date
Riccardo Mottola
0c2157deaf be more careful when freeing structs 2021-10-09 07:54:44 +02:00
Riccardo Mottola
7b819af623 Support greyscape output colorspace in JPEG decompression, fix Alpha output do NO, since JPEGs do not support it. 2020-11-03 01:57:34 +01:00
rmottola
2858654976 include hack for interface in Win headers so that no patch of MinGW is needed, also try to refine bool redefinition which changes among jpeg library versions - although not foolproof solution 2020-10-15 16:58:11 +02:00
Riccardo Mottola
96fbdaa81f Check for floorf() and provide simple replacement 2018-06-11 23:46:06 +02:00
Riccardo Mottola
4ba0fa25cc Save resolution information if it is different from 72 dpi 2017-06-20 20:14:50 +00:00
Riccardo Mottola
90d793695b Ignore density if unit is 0
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@40429 72102866-910b-0410-8b05-ffd578937521
2017-03-31 15:35:46 +00:00
Riccardo Mottola
c774fd75c3 use double and better math to avoid rounding errors especially with cm->inch conversion
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@40427 72102866-910b-0410-8b05-ffd578937521
2017-03-28 15:35:38 +00:00
Riccardo Mottola
28b15bce9f Parse density data and set size accordingly
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@40425 72102866-910b-0410-8b05-ffd578937521
2017-03-28 13:51:12 +00:00
Fred Kiefer
083b34fe1c * Source/NSBitmapImageRep+JPEG.m(-_JPEGRepresentationWithProperties:errorMessage:):
Correct JPEG export which was using size instead of pixelsWide and pixelsHigh.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@40415 72102866-910b-0410-8b05-ffd578937521
2017-03-24 23:06:31 +00:00
Fred Kiefer
83c7444c8a * Source/NSBitmapImageRep+JPEG.m: Try to handle images with alpha
or planar images correctly.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@40175 72102866-910b-0410-8b05-ffd578937521
2016-10-24 21:06:23 +00:00
Richard Frith-MacDonald
08910fb913 lintian spelling correctes provided by Eric Heintzmann
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@39816 72102866-910b-0410-8b05-ffd578937521
2016-05-28 09:49:15 +00:00
Riccardo Mottola
44500d28e6 Transform 0..255 compression factor to 0..1 quality to match Cocoa specs
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37898 72102866-910b-0410-8b05-ffd578937521
2014-05-21 14:52:09 +00:00
Fred Kiefer
db8253b2d1 * Source/NSBitmapImageRep+JPEG.m: Remove CYGWIN specific define
as it is no longer needed. I leave the code for this in for a
  while.
  Patch by Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37435 72102866-910b-0410-8b05-ffd578937521
2013-12-06 17:45:37 +00:00
Richard Frith-MacDonald
edb6aa47ee avoid obsolete macros
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32412 72102866-910b-0410-8b05-ffd578937521
2011-02-28 15:43:25 +00:00
Riccardo Mottola
ed0d31d84e remove useless double statement, remove unused variable and assignment
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@31344 72102866-910b-0410-8b05-ffd578937521
2010-09-13 15:41:53 +00:00
Fred Kiefer
d9172838aa Small corrections to last commit.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@30449 72102866-910b-0410-8b05-ffd578937521
2010-05-24 19:30:49 +00:00
Fred Kiefer
99e273a57d few compiler warning fixes plus a lot of #import replacement.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@30448 72102866-910b-0410-8b05-ffd578937521
2010-05-24 10:48:14 +00:00
Fred Kiefer
706d84fdfd * Source/NSBitmapImageRep+JPEG.m (-_JPEGRepresentationWithProperties:errorMessage:): Use the
correct size for the structure in memset.
Patch by Philippe Roussel <p.o.roussel@free.fr>.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@30132 72102866-910b-0410-8b05-ffd578937521
2010-04-12 14:27:37 +00:00
David Chisnall
c6866f8c8a Lots of small tweaks to make -gui compile without warnings with clang.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@30119 72102866-910b-0410-8b05-ffd578937521
2010-04-10 20:33:30 +00:00
Fred Kiefer
63c073879a * Source/NSBitmapImageRep+JPEG.m: Put cinfo into a defined state
before using it.
Patch by Vincent Richomme <forumer@smartmobili.com>.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29998 72102866-910b-0410-8b05-ffd578937521
2010-03-18 08:36:28 +00:00
Fred Kiefer
c05581a005 Fix up teh includes to compile again after latest changes to base. Still
plenty of warnings and the result isn't working at least on 64 bit
machines :-(


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29685 72102866-910b-0410-8b05-ffd578937521
2010-02-20 10:40:44 +00:00
Adam Fedor
76b074a205 Fix broken jpeg boolean def
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@26943 72102866-910b-0410-8b05-ffd578937521
2008-10-21 00:55:37 +00:00
Adam Fedor
d650fce161 Handle patched jpeg library found on CYGWIN.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@26802 72102866-910b-0410-8b05-ffd578937521
2008-08-08 14:08:54 +00:00
Adam Fedor
7afdd32ac1 Revert library license version to 2 until applications can be converted
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@26619 72102866-910b-0410-8b05-ffd578937521
2008-06-10 04:01:49 +00:00
Adam Fedor
777fed73b2 Degine HAVE_BOOLEAN on mingw to avoid jpeg conflicts
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@26500 72102866-910b-0410-8b05-ffd578937521
2008-05-08 15:28:42 +00:00
Fred Kiefer
193e31e678 Change all files to use GPL 3 and LGPL 3.
Prepare for next release.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@25536 72102866-910b-0410-8b05-ffd578937521
2007-10-29 21:16:17 +00:00
Mark Tracy
9f633f60f6 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
Richard Frith-MacDonald
7d001ccf0c Fix to get file to compile with older compilers.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@23392 72102866-910b-0410-8b05-ffd578937521
2006-09-05 11:03:27 +00:00
Nicolas Roard
5c156d87df moved a declaration at the beginning of the method (gcc 2.9x ...)
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@23388 72102866-910b-0410-8b05-ffd578937521
2006-09-04 00:11:45 +00:00
Nicolas Roard
d3ff656a0c Added JPEG writing support to NSBitmapImageRep. Only handles RGB images (NS*RGBColorSpace). You can specify the compression ratio by using the NSImageCompressionFactor key in the properties dictionary.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@23387 72102866-910b-0410-8b05-ffd578937521
2006-09-04 00:02:20 +00:00
Richard Frith-MacDonald
65b175b904 Tweaks to avoid new compiler warnings with gcc-4.1 and some 64bit issues.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@23126 72102866-910b-0410-8b05-ffd578937521
2006-07-04 21:31:49 +00:00
Adam Fedor
e81e2faa26 Source/NSBitmapImageRep+JPEG.m: Add workaround so that INT32
is not redefined on MingW by jmorecfg.h (Suggestion from Issac
Trotts).


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@22800 72102866-910b-0410-8b05-ffd578937521
2006-04-19 21:28:51 +00:00
Adam Fedor
303dd1baf9 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
Alexander Malmberg
3f7866a8ed 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