Commit 1a18bdd2 authored by William Skaggs's avatar William Skaggs
Browse files

Bill Skaggs <weskaggs@primate.ucdavis.edu>

	* plug-ins/jpeg/Makefile.am
	* plug-ins/jpeg/NEWS
	* plug-ins/jpeg/jpeg.c
	* plug-ins/jpeg/jpeg.h
	* plug-ins/jpeg/jpeg_load.c
	* plug-ins/jpeg/jpeg_load.h
	* plug-ins/jpeg/jpeg_save.c
	* plug-ins/jpeg/jpeg_save.h: moved jpeg code into new
	dir and split up, already too large and a good bit more
	will be needed for proper exif handling.

	* plug-ins/common/jpeg.c: removed

	* configure.in
	* plug-ins/Makefile.am
	* plug-ins/common/Makefile.am: changed accordingly
parent a52204ed
2005-01-01 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* plug-ins/jpeg/Makefile.am
* plug-ins/jpeg/NEWS
* plug-ins/jpeg/jpeg.c
* plug-ins/jpeg/jpeg.h
* plug-ins/jpeg/jpeg_load.c
* plug-ins/jpeg/jpeg_load.h
* plug-ins/jpeg/jpeg_save.c
* plug-ins/jpeg/jpeg_save.h: moved jpeg code into new
dir and split up, already too large and a good bit more
will be needed for proper exif handling.
* plug-ins/common/jpeg.c: removed
* configure.in
* plug-ins/Makefile.am
* plug-ins/common/Makefile.am: changed accordingly
2005-01-01 Manish Singh <yosh@gimp.org>
* plug-ins/common/tiff.c: Revert incorrect optimization from previous
......
......@@ -1615,6 +1615,7 @@ plug-ins/helpbrowser/Makefile
plug-ins/ifscompose/Makefile
plug-ins/imagemap/Makefile
plug-ins/imagemap/images/Makefile
plug-ins/jpeg/Makefile
plug-ins/maze/Makefile
plug-ins/pagecurl/Makefile
plug-ins/print/Makefile
......
......@@ -48,6 +48,7 @@ SUBDIRS = \
$(helpbrowser) \
ifscompose \
imagemap \
jpeg \
maze \
pagecurl \
$(print) \
......
......@@ -91,7 +91,6 @@ libexec_PROGRAMS = \
illusion \
iwarp \
jigsaw \
$(JPEG) \
laplace \
lic \
$(MAIL) \
......@@ -171,7 +170,6 @@ libexec_PROGRAMS = \
EXTRA_PROGRAMS = \
aa \
jpeg \
mail \
mng \
png \
......@@ -1012,21 +1010,6 @@ jigsaw_LDADD = \
$(RT_LIBS) \
$(INTLLIBS)
jpeg_SOURCES = \
jpeg.c
jpeg_LDADD = \
$(libgimpui) \
$(libgimpwidgets) \
$(libgimp) \
$(libgimpcolor) \
$(libgimpbase) \
$(LIBJPEG) \
$(GTK_LIBS) \
$(EXIF_LIBS) \
$(RT_LIBS) \
$(INTLLIBS)
laplace_SOURCES = \
laplace.c
......
## Process this file with automake to produce Makefile.in
libgimpui = $(top_builddir)/libgimp/libgimpui-$(GIMP_API_VERSION).la
libgimpwidgets = $(top_builddir)/libgimpwidgets/libgimpwidgets-$(GIMP_API_VERSION).la
libgimp = $(top_builddir)/libgimp/libgimp-$(GIMP_API_VERSION).la
libgimpcolor = $(top_builddir)/libgimpcolor/libgimpcolor-$(GIMP_API_VERSION).la
libgimpbase = $(top_builddir)/libgimpbase/libgimpbase-$(GIMP_API_VERSION).la
if OS_WIN32
mwindows = -mwindows
endif
AM_LDFLAGS = $(mwindows)
libexecdir = $(gimpplugindir)/plug-ins
EXTRA_DIST = \
mkgen.pl \
plugin-defs.pl
INCLUDES = \
-I$(top_srcdir) \
$(GTK_CFLAGS) \
$(EXIF_CFLAGS) \
$(SVG_CFLAGS) \
$(WMF_CFLAGS) \
-I$(includedir)
libexec_PROGRAMS = $(JPEG)
EXTRA_PROGRAMS = jpeg
jpeg_SOURCES = \
jpeg.c \
jpeg_load.c \
jpeg_save.c \
jpeg.h \
jpeg_save.h \
jpeg_load.h
jpeg_LDADD = \
$(libgimpui) \
$(libgimpwidgets) \
$(libgimp) \
$(libgimpcolor) \
$(libgimpbase) \
$(LIBJPEG) \
$(GTK_LIBS) \
$(EXIF_LIBS) \
$(RT_LIBS) \
$(INTLLIBS)
JPEG loading and saving file filter for the GIMP
-Peter Mattis
This filter is heavily based upon the "example.c" file in libjpeg.
In fact most of the loading and saving code was simply cut-and-pasted
from that file. The filter, therefore, also uses libjpeg.
--------------------------------------------------------------------------
15-NOV-04 - add support for EXIF JPEG thumbnail reading and writing
- S. Mukund <muks@mukund.org>
Digital cameras store a TIFF APP1 marker that contains various
parameters of the shot along with a thumbnail image.
--------------------------------------------------------------------------
22-JUN-03 - add support for keeping EXIF information
- Dave Neary <bolsh@gimp.org>
This is little more than a modified version fo a patch from the
libexif owner (Lutz Muller) which attaches exif information to
a GimpImage, and if there is infoprmation available at save
time, writes it out. No modification of the exif data is
currently possible.
--------------------------------------------------------------------------
4-SEP-01 - remove the use of GtkText
- DindinX <David@dindinx.org>
The new version of GTK+ does not support GtkText anymore.
I've just replaced the one used for the image comment by
a GtkTextView/GtkTextBuffer couple;
--------------------------------------------------------------------------
22-DEC-99 - volatiles added
- Austin Donnelly <austin@gimp.org>
When gcc complains a variable may be clobbered by a longjmp or
vfork, it means the following: setjmp() was called by the JPEG
library for error recovery purposes, but gcc is keeping some
variables in registers without updating the memory locations on the
stack consistently. If JPEG error recovery is every invoked, the
values of these variable will be inconsistent. This is almost
always a bug, but not one that's commonly seen unless JPEG recovery
code is exercised frequently. The correct solution is to tell gcc
to keep the stack version of the affected variables up to date, by
using the "volatile" keyword. Here endeth the lesson.
--------------------------------------------------------------------------
21-AUG-99 - Bunch O' Fixes.
- Adam D. Moss <adam@gimp.org>
We now correctly create an alpha-padded layer for our preview --
having a non-background non-alpha layer is a no-no in GIMP.
I've also tweaked the GIMP undo API a little and changed the JPEG
plugin to use gimp_image_{freeze,thaw}_undo so that it doesn't store
up a whole load of superfluous tile data every time the preview is
changed.
--------------------------------------------------------------------------
21-AUG-99 - Added support for JPEG previews, subsampling,
non-baseline JPEGs, restart markers and DCT method choice
- Steinar H. Gunderson <sgunderson@bigfoot.com>
A small preview appears and changes according to the changes to the
compression options. The image itself works as a much bigger preview.
For slower machines, the save operation (not the load operation) is
done in the background, with a standard GTK+ idle loop, which turned
out to be the most portable way. Win32 porters shouldn't have much
difficulty porting my changes (at least I hope so...).
Subsampling is a pretty obscure feature, but I thought it might be nice
to have it in anyway, for people to play with :-) Does anybody have
any better suggestions than the ones I've put in the menu? (See wizard.doc
from the libjpeg distribution for a tiny bit of information on subsampling.)
A baseline JPEG is often larger and/or of worse quality than a non-baseline
one (especially at low quality settings), but all decoders are guaranteed
to read baseline JPEGs (I think). Not all will read a non-baseline one.
Restart markers are useful if you are transmitting the image over an
unreliable network. If a file gets corrupted, it will only be corrupted
up to the next restart marker. Of course, if there are no restart markers,
the rest of the image will be corrupted. Restart markers take up extra
space. The libjpeg developers recommend a restart every 1 row for
transmitting images over unreliable networks, such as Usenet.
The DCT method is said by the libjpeg docs to _only_ influence quality vs.
speed, and nothing else. However, I've found that there _are_ size
differences. Fast integer, on the other hand, is faster than integer,
which in turn is faster than FP. According to the libjpeg docs (and I
believe it's true), FP has only a theoretical advantage in quality, and
will be slower than the two other methods, unless you're blessed with
very a fast FPU. (In addition, images might not be identical on
different types of FP hardware.)
...and thus ends my additions to the JPEG plug-in. I hope. *sigh* :-)
--------------------------------------------------------------------------
11-JAN-99 - Added support for JPEG comments and Progressive saves.
-pete whiting <pwhiting@sprint.net>
Comments of size up to 32k can be stored in the header of jpeg
files. (They are not compressed.) The JPEG specs and libraries
support the storing of multiple comments. The behavior of this
code is to merge all comments in a loading image into a single
comment (putting \n between each) and attach that string as a
parasite - gimp-comment - to the image. When saving, the image is
checked to see if it has the gimp-comment parasite - if so, that is
used as the default comment in the save dialog. Further, the other
jpeg parameters (quality, smoothing, compression and progressive)
are attached to the image as a parasite. This allows the
parameters to remain consistent between saves. I was not able to
figure out how to determine the quality, smoothing or compression
values of an image as it is being loaded, but the code is there to
support it if anyone knows how. Progressive mode is a method of
saving the image such that as a browser (or other app supporting
progressive loads - gimp doesn't) loads the image it first gets a
low res version displayed and then the image is progressively
enhanced until you get the final version. It doesn't add any size
to the image (actually it often results in smaller file size) - the
only draw backs are that progressive jpegs are not supported by some
older viewers/browsers, and some might find it annoying.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
/* The GIMP -- an image manipulation program
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
gint32 load_image (const gchar *filename,
GimpRunMode runmode,
gboolean preview);
#ifdef HAVE_EXIF
gint32 load_thumbnail_image (const gchar *filename,
gint *width,
gint *height);
#endif /* HAVE_EXIF */
/* The GIMP -- an image manipulation program
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#define SCALE_WIDTH 125
/* if you are not compiling this from inside the gimp tree, you have to */
/* take care yourself if your JPEG library supports progressive mode */
/* #undef HAVE_PROGRESSIVE_JPEG if your library doesn't support it */
/* #define HAVE_PROGRESSIVE_JPEG if your library knows how to handle it */
/* See bugs #63610 and #61088 for a discussion about the quality settings */
#define DEFAULT_QUALITY 85
#define DEFAULT_SMOOTHING 0.0
#define DEFAULT_OPTIMIZE TRUE
#define DEFAULT_PROGRESSIVE FALSE
#define DEFAULT_BASELINE TRUE
#define DEFAULT_SUBSMP 0
#define DEFAULT_RESTART 0
#define DEFAULT_DCT 0
#define DEFAULT_PREVIEW FALSE
#define DEFAULT_EXIF TRUE
#define DEFAULT_THUMBNAIL FALSE
typedef struct
{
gdouble quality;
gdouble smoothing;
gboolean optimize;
gboolean progressive;
gboolean baseline;
gint subsmp;
gint restart;
gint dct;
gboolean preview;
gboolean save_exif;
gboolean save_thumbnail;
} JpegSaveVals;
JpegSaveVals jsvals;
gint32 orig_image_ID_global;
gint32 drawable_ID_global;
gboolean save_image (const gchar *filename,
gint32 image_ID,
gint32 drawable_ID,
gint32 orig_image_ID,
gboolean preview);
gboolean save_dialog (void);
#ifdef HAVE_EXIF
gint create_thumbnail (gint32 image_ID,
gint32 drawable_ID,
gchar **thumbnail_buffer);
#endif /* HAVE_EXIF */
......@@ -32,12 +32,10 @@ localedir = $(libdir)/locale
gnulocaledir = $(datadir)/locale
gettextsrcdir = $(datadir)/glib-2.0/gettext/po
subdir = po
install_sh = @install_sh@
mkdir_p = @mkdir_p@
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
MKINSTALLDIRS = $(top_srcdir)/@MKINSTALLDIRS@
CC = @CC@
GENCAT = @GENCAT@
......@@ -104,7 +102,7 @@ install-exec:
install-data: install-data-@USE_NLS@
install-data-no: all
install-data-yes: all
if test -n "$(MKINSTALLDIRS)"; then \
if test -r "$(MKINSTALLDIRS)"; then \
$(MKINSTALLDIRS) $(DESTDIR)$(datadir); \
else \
$(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(datadir); \
......@@ -118,7 +116,7 @@ install-data-yes: all
esac; \
lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \
if test -n "$(MKINSTALLDIRS)"; then \
if test -r "$(MKINSTALLDIRS)"; then \
$(MKINSTALLDIRS) $$dir; \
else \
$(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \
......@@ -146,7 +144,7 @@ install-data-yes: all
fi; \
done
if test "$(PACKAGE)" = "glib"; then \
if test -n "$(MKINSTALLDIRS)"; then \
if test -r "$(MKINSTALLDIRS)"; then \
$(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \
else \
$(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(gettextsrcdir); \
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment