Fix for #96611
This commit is contained in:
@ -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>
|
2003-01-10 Michael Natterer <mitch@gimp.org>
|
||||||
|
|
||||||
* app/tools/gimpvectortool.c (gimp_vector_tool_button_press):
|
* app/tools/gimpvectortool.c (gimp_vector_tool_button_press):
|
||||||
|
@ -431,6 +431,8 @@ load_image (gchar *filename)
|
|||||||
guchar *icc_profile;
|
guchar *icc_profile;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
guint16 orientation;
|
||||||
|
|
||||||
gimp_rgb_set (&color, 0.0, 0.0, 0.0);
|
gimp_rgb_set (&color, 0.0, 0.0, 0.0);
|
||||||
|
|
||||||
TIFFSetWarningHandler (tiff_warning);
|
TIFFSetWarningHandler (tiff_warning);
|
||||||
@ -685,6 +687,62 @@ load_image (gchar *filename)
|
|||||||
load_lines (tif, channel, bps, photomet, alpha, extra);
|
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) {
|
for (i= 0; !worst_case && i < extra; ++i) {
|
||||||
gimp_drawable_flush (channel[i].drawable);
|
gimp_drawable_flush (channel[i].drawable);
|
||||||
gimp_drawable_detach (channel[i].drawable);
|
gimp_drawable_detach (channel[i].drawable);
|
||||||
@ -1607,19 +1665,19 @@ save_dialog (void)
|
|||||||
&tsvals.compression,
|
&tsvals.compression,
|
||||||
GINT_TO_POINTER (tsvals.compression),
|
GINT_TO_POINTER (tsvals.compression),
|
||||||
|
|
||||||
_("None"),
|
_("_None"),
|
||||||
GINT_TO_POINTER (COMPRESSION_NONE), NULL,
|
GINT_TO_POINTER (COMPRESSION_NONE), NULL,
|
||||||
|
|
||||||
_("LZW"),
|
_("_LZW"),
|
||||||
GINT_TO_POINTER (COMPRESSION_LZW), NULL,
|
GINT_TO_POINTER (COMPRESSION_LZW), NULL,
|
||||||
|
|
||||||
_("Pack Bits"),
|
_("_Pack Bits"),
|
||||||
GINT_TO_POINTER (COMPRESSION_PACKBITS), NULL,
|
GINT_TO_POINTER (COMPRESSION_PACKBITS), NULL,
|
||||||
|
|
||||||
_("Deflate"),
|
_("_Deflate"),
|
||||||
GINT_TO_POINTER (COMPRESSION_DEFLATE), NULL,
|
GINT_TO_POINTER (COMPRESSION_DEFLATE), NULL,
|
||||||
|
|
||||||
_("JPEG"),
|
_("_JPEG"),
|
||||||
GINT_TO_POINTER (COMPRESSION_JPEG), NULL,
|
GINT_TO_POINTER (COMPRESSION_JPEG), NULL,
|
||||||
|
|
||||||
NULL);
|
NULL);
|
||||||
|
Reference in New Issue
Block a user