Commit Graph

61 Commits

Author SHA1 Message Date
Hartmut Kuhse 66bc98d299 Revert "New GimpMetadata as subclass of GExiv2Metadata"
This reverts commit 3ab08c8bfd.
2017-01-03 19:36:22 +01:00
Hartmut Kuhse 3ab08c8bfd New GimpMetadata as subclass of GExiv2Metadata 2017-01-03 19:26:35 +01:00
Mihail Zenkov 07eb13c73d Bug 769976 - JPEG export ignores quality setting and subsampling fix.
Set use_orig_quality when both the quality and the subsampling are the
same as in the originally-imported jpeg.

Also improve subsampling initial selection: use the original subsampling
unless the default one is the best or the original one is the worst.
The current code was wrong and would often use the default subsampling
even when worse than the original one.
2016-11-08 16:09:37 +01:00
Michael Natterer 4df9a1d568 Get rid of gtk_misc_set_alignment(label) and use gtk_label_set_x,yalign() 2016-09-08 19:11:20 +02:00
Jehan ec27b539ea plug-ins: various s/save/export/ replacement on visible strings. 2016-02-16 02:35:43 +01:00
Michael Natterer 1d37c67879 plug-ins: use the GimpColorProfile API instead of the "icc-profile" parasite 2015-08-20 11:15:26 +02:00
Michael Natterer 1615252ced plug-ins: get rid of GtkObject in jpeg-save.c
Reduces the diff in gtk3-port, and was wrong in some cases anyway.
2015-06-09 23:56:35 +02:00
Joao S. O. Bueno cd68967b06 PLUGINS: Adds UI consistence to jpeg-save dialog. Fixes #747054 2015-03-31 18:19:55 -03:00
Mukund Sivaraman 99789d252e file-jpeg: Initialize fields in case sscanf() assigns fewer of them 2014-10-28 09:54:20 +05:30
Michael Natterer 6c9181158e Bug 734655 - "Export Image As JPEG" settings are not remembered
Fix the number of expected fields when parsing the defaults parasite
so the saved settings are actually used. Spotted by Massimo.
2014-09-15 00:35:04 +02:00
Michael Natterer 08ffad9086 plug-ins: some gimp_spin_button_new() -> gtk_spin_button_new() 2014-06-22 00:26:59 +02:00
Mukund Sivaraman 8ef1f20c22 file-jpeg: Reduce use of #ifdefs 2014-05-15 13:41:21 +05:30
Mukund Sivaraman c760829161 file-jpeg: Append to parasite fields 2014-05-15 01:38:58 +05:30
Mukund Sivaraman 080fd93d90 file-jpeg: Use state of toggle button with the event 2014-05-15 01:37:16 +05:30
Mukund Sivaraman 7a6b8f0e69 file-jpeg: Add support for arithmetic coding
Arithmetic coding is a feature of the JPEG standard. Although libjpeg
had always implemented arithmetic coding, it was compiled out by default
due to patents.

Those patents have now expired.

libjpeg 8 now enables arithmetic coding by default. Distributions which
use libjpeg < 8 can also support arithmetic coding by using the
appropriate CFLAGS to enable it. libjpeg-turbo 1.3.1 also has support
for arithmetic coding and is in popular shipping distributions.

Software such as jpegtran can losslessly convert Huffman compressed
images to arithmetic coding and vice versa. The lossy behavior of JPEG
does not happen at this (bit coding) layer of the format.

This initial patch provides a checkbox (disabled by default) to create
files which use arithmetic coding. It also has a tooltip warning that
such files may not be compatible with older decoders.
2014-05-15 00:57:42 +05:30
Michael Schumacher 8db3b4312d Global EXIF -> Exif string change (official spelling) 2013-10-29 22:48:46 +01:00
Michael Natterer 7752873add plug-ins: trust the TIFF's resolution over its metadata's resolution
This also sortof addresses bug #691231, but fixes the issue only
indirectly by not perferring the EXIF resolution.
2013-10-27 18:52:46 +01:00
Hartmut Kuhse 21bed1e2fb Completely rewrite metadata handling using gexiv2
Based on original patches from Hartmut Kuhse and modified
by Michael Natterer. Changes include:

- remove libexif dependency and add a hard dependency on gexiv2
- typedef GExiv2Metadata to GimpMetadata to avoid having to
  include gexiv2 globally
- add basic GimpMetadata handling functions to libgimpbase
- add image and image file specific metadata functions to libgimp,
  including the exif orientation image rotate dialog
- port plug-ins to use the new APIs
- port file-tiff-save's UI to GtkBuilder
- add new plug-in "metadata" to view the image's metadata
- keep metadata around as GimpImage member in the core
- update the image's metadata on image size, resolution and precision
  changes
- obsolete the old metadata parasites
- migrate the old parasites to new GimpMetadata object on XCF load
2013-10-27 01:02:17 +02:00
Michael Natterer 54ead10b57 plug-ins: simplify the file-jpeg file size displaying code
and display errors returned by g_file_query_info().
2013-10-12 18:53:03 +02:00
Michael Natterer 1f21a28770 Bug 703065 - Jpeg file size preview error is back
Use GIO to get the file size.
2013-10-05 00:14:14 +02:00
Massimo Valentini bcc68763d6 file-jpeg: get data with alpha already stripped
otherwise the buffer allocated to locally ignore it
was smaller than necessary
2013-05-17 18:04:00 +02:00
Mukund Sivaraman 0ae7894f87 file-jpeg: Fix load/save for different precisions 2013-05-14 13:35:47 +05:30
Mukund Sivaraman c4dcc517a4 file-jpeg: GEGL convert save functions 2013-05-13 12:25:32 +05:30
Mukund Sivaraman 51680fb987 file-jpeg: GEGL convert load functions
drawable_global doesn't seem to be used anywhere. This commit removes
it.
2013-05-13 11:42:10 +05:30
Massimo Valentini ef5cd8d80a Bug 686379: In the JPEG save dialog, checking/unchecking XMP...
saving, don't update JPEG size
2012-10-22 18:26:05 +02:00
Massimo Valentini cac0504f29 Bug 675981: Export as JPEG "save defaults" "load defaults" doesn't work
oversight
2012-05-18 17:20:52 +02:00
Michael Natterer 9781aa65ea Bug 658467 - Replace g_format_size_for_display() by g_format_size()
Use g_format_size() instead of g_format_size_for_display() because
the latter is deprecated.
2011-11-30 23:37:55 +01:00
Mukund Sivaraman a7604f706d file-jpeg: Save and restore use_orig_quality 2011-09-30 18:31:28 +05:30
Mukund Sivaraman aa2a876d22 file-jpeg: Rename load_save_defaults() to load_defaults() 2011-09-30 18:31:27 +05:30
Michael Natterer dcb4c6e34a plug-ins: use gtk_box_new() 2011-09-30 12:18:24 +02:00
Mukund Sivaraman 536d6a527c file-jpeg: Create jpeg-exif.h and move EXIF protos to it 2011-09-18 07:21:30 +05:30
Mukund Sivaraman 2aae54226c build: Rename HAVE_EXIF define to HAVE_LIBEXIF 2011-09-18 07:04:44 +05:30
Mukund Sivaraman 0a20d9bdbd file-jpeg: Rename misnamed macros 2011-06-10 23:40:23 +05:30
Mukund Sivaraman f3c395f9df file-jpeg: (save) Change default subsampling labels
This was discussed in #gimp. We change the default subsampling
labels to more easily understood ones ones for users of
graphics software.
2011-06-10 23:37:09 +05:30
Mukund Sivaraman f03aef5a5e file-jpeg: (save) Change default restart MCU rows to 16
With a 1x1,1x1,1x1 interleave, this will result in a restart
marker every 128 rows of pixels, which is more suitable for a
default setting.
2011-06-10 23:34:44 +05:30
Mukund Sivaraman 4e0a48fabc file-jpeg: (save) Change the label for restart interval
This was discussed in #gimp. The old label was "Frequency (rows)"
which is misleading. This field is basically converted by libjpeg
to another value called a restart interval which is stored in a
JPEG file. The restart interval specifies after how many MCUs
the restart (syncronization) marker appears in the bitstream.
It is not easy to explain to a layperson what an MCU is.

The value in the dialog specifies after how many *MCU rows* the
restart marker appears. This is a libjpeg thing, and libjpeg
converts it to the restart interval.

I have merely renamed the text label of the field and PDB
description as the current text implies pixel rows which is not
the case.

A better alternative is to use the restart interval (in MCUs,
not MCU rows) as saved in the file itself, which more people
than users of libjpeg would understand. But even that setting
is not something that can easily be explained to a layperson.
2011-06-10 23:33:11 +05:30
Mukund Sivaraman 4b3a1c6680 file-jpeg: (save) Change default coding mode to progressive
This was discussed in #gimp. This would no longer result in strictly
baseline JPEGs, but progressive mode has been supported for about
a decade in browsers and libjpeg now.

Progressive mode brings two advantages: (1) Medium to large images get
decent space savings to due to coding of large sequences of
zero coefficients, and (2) The images load progressively in a browser
which leads to better user experience when viewing medium to large
images on a website.

Those who want strictly baseline have the option to turn it off.
2011-06-10 23:25:05 +05:30
Mukund Sivaraman dd912b1cb9 file-jpeg: (save) Change default compression level to 90
This was discussed in #gimp. 90 is affordable as the default
in these days of large hard disks and broadband.
2011-06-10 23:16:51 +05:30
Mukund Sivaraman 24c88e0fcf file-jpeg: (save) Change default subsampling to best quality
This was discussed in #gimp. There is no reason to have the default
option throw away such image quality in these days of large hard disks
and broadband.
2011-06-10 23:15:43 +05:30
Michael Natterer ab3fe10275 plug-ins: remove some more -Wunused-but-set-variable 2011-05-15 21:12:49 +02:00
Michael Natterer bb6436cb44 libgimp: deprecate and rename the global pararasite functions
just as it was done for items and images. Remove the "parasite" PDB
group completely.
2011-03-08 14:31:04 +01:00
Michael Natterer 87646e9ace libgimp: deprecate and rename the image parasite functions
in exactly the way the drawable functios were turned into item ones.
2011-03-08 13:19:21 +01:00
Mukund Sivaraman b072e75833 file-jpeg: Make cinfo struct static so asynchronous saves don't crash
The plug-in already makes a copy of the cinfo struct for asynchronous
save, but it seems that somewhere inside cinfo, a pointer points to
another region in this struct. So, everything is copied as-is, and
the pointer ends up pointing to somewhere in the save_image() stack
which is gone when that function returns.
2010-10-23 17:23:22 +05:30
Mukund Sivaraman 64ed52144a Update indentation 2010-10-23 00:39:03 +05:30
Mukund Sivaraman 4998863806 file-jpeg: Fix a crash when toggling settings in preview mode
This patch cancels the GSource for background_jpeg_save() and calls it
synchronously to free resources. Without this patch, multiple GSources
for background_jpeg_save() get setup and result in a crash.
2010-10-22 22:23:42 +05:30
Nelson A. de Oliveira 4fea27ec1d Bug 623169 - Memory leaks in GIMP
Add some missing g_free() and free() calls, found by cppcheck.
2010-07-15 21:42:36 +02:00
Michael Natterer c6a2eaa5c4 plug-ins: use new item API instead of deprecated drawable API 2010-07-09 12:27:36 +02:00
Michael Natterer d0fae3d338 Use gtk_adjustment_get_value() instead of adjustment->value 2009-10-09 21:19:09 +02:00
Martin Nordholts 19fe919dce plug-ins: Port file plug-ins to new export API 2009-07-21 16:03:58 +02:00
Michael Natterer e805cb0cf4 Use gtk_dialog_get_content_area() instead of dialog->vbox 2009-07-15 18:57:12 +02:00