This commit is contained in:
Maurits Rijk 2003-01-10 13:59:41 +00:00
parent 415f54d126
commit bfd02e4db3
2 changed files with 68 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2003-01-10 Maurits Rijk <lpeek.mrijk@consunet.nl>
* plug-ins/common/tiff.c (load_image): added handling of
TIFFTAG_ORIENTATION tag (fixes #96611).
2003-01-10 Michael Natterer <mitch@gimp.org>
* app/tools/gimpvectortool.c (gimp_vector_tool_button_press):

View File

@ -431,6 +431,8 @@ load_image (gchar *filename)
guchar *icc_profile;
#endif
guint16 orientation;
gimp_rgb_set (&color, 0.0, 0.0, 0.0);
TIFFSetWarningHandler (tiff_warning);
@ -685,6 +687,62 @@ load_image (gchar *filename)
load_lines (tif, channel, bps, photomet, alpha, extra);
}
if (TIFFGetField (tif, TIFFTAG_ORIENTATION, &orientation)) {
GimpParam *return_vals;
int nreturn_vals;
gint32 drawable_ID;
gboolean flip_horizontal;
gboolean flip_vertical;
drawable_ID = gimp_image_active_drawable (image);
switch (orientation)
{
case ORIENTATION_TOPLEFT:
flip_horizontal = FALSE;
flip_vertical = FALSE;
break;
case ORIENTATION_TOPRIGHT:
flip_horizontal = TRUE;
flip_vertical = FALSE;
break;
case ORIENTATION_BOTRIGHT:
flip_horizontal = TRUE;
flip_vertical = TRUE;
break;
case ORIENTATION_BOTLEFT:
flip_horizontal = FALSE;
flip_vertical = TRUE;
break;
default:
flip_horizontal = FALSE;
flip_vertical = FALSE;
printf("Orientation %d not handled yet!\n", orientation);
break;
}
gimp_image_undo_disable(image);
if (flip_horizontal)
{
return_vals = gimp_run_procedure("gimp_flip",
&nreturn_vals,
GIMP_PDB_DRAWABLE, drawable_ID,
GIMP_PDB_INT32, 0,
GIMP_PDB_END);
gimp_destroy_params(return_vals, nreturn_vals);
}
if (flip_vertical)
{
return_vals = gimp_run_procedure("gimp_flip",
&nreturn_vals,
GIMP_PDB_DRAWABLE, drawable_ID,
GIMP_PDB_INT32, 1,
GIMP_PDB_END);
gimp_destroy_params(return_vals, nreturn_vals);
}
gimp_image_undo_enable(image);
}
for (i= 0; !worst_case && i < extra; ++i) {
gimp_drawable_flush (channel[i].drawable);
gimp_drawable_detach (channel[i].drawable);
@ -1607,19 +1665,19 @@ save_dialog (void)
&tsvals.compression,
GINT_TO_POINTER (tsvals.compression),
_("None"),
_("_None"),
GINT_TO_POINTER (COMPRESSION_NONE), NULL,
_("LZW"),
_("_LZW"),
GINT_TO_POINTER (COMPRESSION_LZW), NULL,
_("Pack Bits"),
_("_Pack Bits"),
GINT_TO_POINTER (COMPRESSION_PACKBITS), NULL,
_("Deflate"),
_("_Deflate"),
GINT_TO_POINTER (COMPRESSION_DEFLATE), NULL,
_("JPEG"),
_("_JPEG"),
GINT_TO_POINTER (COMPRESSION_JPEG), NULL,
NULL);