[gimp/metadata-browser] further untested loading code...
- From: Roman Joost <romanofski src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/metadata-browser] further untested loading code...
- Date: Thu, 13 Sep 2012 00:17:52 +0000 (UTC)
commit 12be39fc26c46a51f5c932e71065084cb87c98f7
Author: Simon Budig <simon budig de>
Date: Sat May 19 02:51:50 2012 +0200
further untested loading code...
plug-ins/common/file-tiff-load.c | 629 +-------------------------------------
1 files changed, 10 insertions(+), 619 deletions(-)
---
diff --git a/plug-ins/common/file-tiff-load.c b/plug-ins/common/file-tiff-load.c
index 911ddbb..fd72e9a 100644
--- a/plug-ins/common/file-tiff-load.c
+++ b/plug-ins/common/file-tiff-load.c
@@ -141,44 +141,6 @@ static void read_separate (const guchar *source,
gboolean alpha,
gint extra,
gint sample);
-static void read_16bit (const guchar *source,
- channel_data *channel,
- gushort photomet,
- gint startcol,
- gint startrow,
- gint rows,
- gint cols,
- gboolean alpha,
- gint extra,
- gint align);
-static void read_8bit (const guchar *source,
- channel_data *channel,
- gushort photomet,
- gint startcol,
- gint startrow,
- gint rows,
- gint cols,
- gboolean alpha,
- gint extra,
- gint align);
-static void read_bw (const guchar *source,
- channel_data *channel,
- gint startcol,
- gint startrow,
- gint rows,
- gint cols,
- gint align);
-static void read_default (const guchar *source,
- channel_data *channel,
- gushort bps,
- gushort photomet,
- gint startcol,
- gint startrow,
- gint rows,
- gint cols,
- gboolean alpha,
- gint extra,
- gint align);
static void fill_bit2byte (void);
@@ -1053,7 +1015,7 @@ load_image (const gchar *filename,
if (worst_case)
{
- // load_rgba (tif, channel);
+ load_rgba (tif, channel);
}
else if (TIFFIsTiled (tif))
{
@@ -1182,7 +1144,6 @@ load_image (const gchar *filename,
return image;
}
-#if 0
static void
load_rgba (TIFF *tif,
channel_data *channel)
@@ -1191,16 +1152,12 @@ load_rgba (TIFF *tif,
uint32 row;
uint32 *buffer;
+ g_printerr ("%s\n", __func__);
+
TIFFGetField (tif, TIFFTAG_IMAGEWIDTH, &imageWidth);
TIFFGetField (tif, TIFFTAG_IMAGELENGTH, &imageLength);
- gimp_tile_cache_ntiles (1 + imageWidth / gimp_tile_width ());
-
- gimp_pixel_rgn_init (&(channel[0].pixel_rgn), channel[0].drawable,
- 0, 0, imageWidth, imageLength, TRUE, FALSE);
-
buffer = g_new (uint32, imageWidth * imageLength);
- channel[0].pixels = (guchar *) buffer;
if (!TIFFReadRGBAImage (tif, imageWidth, imageLength, buffer, 0))
g_message ("Unsupported layout, no RGBA loader");
@@ -1217,15 +1174,16 @@ load_rgba (TIFF *tif,
buffer[i] = GUINT32_TO_LE (buffer[i]);
#endif
- gimp_pixel_rgn_set_row (&(channel[0].pixel_rgn),
- channel[0].pixels + row * imageWidth * 4,
- 0, imageLength -row -1, imageWidth);
+ gegl_buffer_set (channel[0].buffer,
+ GEGL_RECTANGLE (0, imageLength - row - 1, imageWidth, 1),
+ 0, channel[0].format,
+ ((guchar *) buffer) + row * imageWidth * 4,
+ GEGL_AUTO_ROWSTRIDE);
if ((row % 32) == 0)
gimp_progress_update ((gdouble) row / (gdouble) imageLength);
}
}
-#endif
static void
load_paths (TIFF *tif, gint image)
@@ -1566,7 +1524,6 @@ load_lines (TIFF *tif,
{
int offset;
- g_printerr ("y: %d, th: %d, il: %d\n", y, tile_height, imageLength);
gimp_progress_update ((gdouble) y / (gdouble) imageLength);
rows = MIN (tile_height, imageLength - y);
@@ -1647,392 +1604,6 @@ load_lines (TIFF *tif,
g_free(buffer);
}
-#if 0
-static void
-read_16bit (const guchar *source,
- channel_data *channel,
- gushort photomet,
- gint startrow,
- gint startcol,
- gint rows,
- gint cols,
- gboolean alpha,
- gint extra,
- gint align)
-{
- guchar *dest;
- gint gray_val, red_val, green_val, blue_val, alpha_val;
- gint col, row, i;
-
- for (i = 0; i <= extra; ++i)
- {
- gimp_pixel_rgn_init (&(channel[i].pixel_rgn), channel[i].drawable,
- startcol, startrow, cols, rows, TRUE, FALSE);
- }
-
-#if G_BYTE_ORDER == G_LITTLE_ENDIAN
- source++; /* offset source once, to look at the high byte */
-#endif
-
- for (row = 0; row < rows; ++row)
- {
- dest = channel[0].pixels + row * cols * channel[0].drawable->bpp;
-
- for (i = 1; i <= extra; ++i)
- channel[i].pixel = channel[i].pixels + row * cols;
-
- for (col = 0; col < cols; col++)
- {
- switch (photomet)
- {
- case PHOTOMETRIC_MINISBLACK:
- if (alpha)
- {
- if (tsvals.save_transp_pixels)
- {
- *dest++ = *source; source += 2;
- *dest++ = *source; source += 2;
- }
- else
- {
- gray_val = *source; source += 2;
- alpha_val = *source; source += 2;
- gray_val = MIN (gray_val, alpha_val);
-
- if (alpha_val)
- *dest++ = gray_val * 255 / alpha_val;
- else
- *dest++ = 0;
-
- *dest++ = alpha_val;
- }
- }
- else
- {
- *dest++ = *source; source += 2;
- }
- break;
-
- case PHOTOMETRIC_MINISWHITE:
- if (alpha)
- {
- if (tsvals.save_transp_pixels)
- {
- *dest++ = *source; source += 2;
- *dest++ = *source; source += 2;
- }
- else
- {
- gray_val = *source; source += 2;
- alpha_val = *source; source += 2;
- gray_val = MIN (gray_val, alpha_val);
-
- if (alpha_val)
- *dest++ = ((alpha_val - gray_val) * 255) / alpha_val;
- else
- *dest++ = 0;
-
- *dest++ = alpha_val;
- }
- }
- else
- {
- *dest++ = ~(*source); source += 2;
- }
- break;
-
- case PHOTOMETRIC_PALETTE:
- *dest++= *source; source += 2;
- if (alpha) *dest++= *source; source += 2;
- break;
-
- case PHOTOMETRIC_RGB:
- if (alpha)
- {
- if (tsvals.save_transp_pixels)
- {
- *dest++ = *source; source += 2;
- *dest++ = *source; source += 2;
- *dest++ = *source; source += 2;
- *dest++ = *source; source += 2;
- }
- else
- {
- red_val = *source; source += 2;
- green_val = *source; source += 2;
- blue_val = *source; source += 2;
- alpha_val = *source; source += 2;
- red_val = MIN (red_val, alpha_val);
- green_val = MIN (green_val, alpha_val);
- blue_val = MIN (blue_val, alpha_val);
- if (alpha_val)
- {
- *dest++ = (red_val * 255) / alpha_val;
- *dest++ = (green_val * 255) / alpha_val;
- *dest++ = (blue_val * 255) / alpha_val;
- }
- else
- {
- *dest++ = 0;
- *dest++ = 0;
- *dest++ = 0;
- }
- *dest++ = alpha_val;
- }
- }
- else
- {
- *dest++ = *source; source += 2;
- *dest++ = *source; source += 2;
- *dest++ = *source; source += 2;
- }
- break;
-
- default:
- /* This case was handled earlier */
- g_assert_not_reached();
- }
-
- for (i = 1; i <= extra; ++i)
- {
- *channel[i].pixel++ = *source; source += 2;
- }
- }
-
- if (align)
- {
- switch (photomet)
- {
- case PHOTOMETRIC_MINISBLACK:
- case PHOTOMETRIC_MINISWHITE:
- case PHOTOMETRIC_PALETTE:
- source += align * (1 + alpha + extra) * 2;
- break;
- case PHOTOMETRIC_RGB:
- source += align * (3 + alpha + extra) * 2;
- break;
- }
- }
- }
-
- for (i = 0; i <= extra; ++i)
- gimp_pixel_rgn_set_rect (&(channel[i].pixel_rgn), channel[i].pixels,
- startcol, startrow, cols, rows);
-}
-#endif
-
-#if 0
-static void
-read_8bit (const guchar *source,
- channel_data *channel,
- gushort photomet,
- gint startrow,
- gint startcol,
- gint rows,
- gint cols,
- gboolean alpha,
- gint extra,
- gint align)
-{
- guchar *dest;
- gint gray_val, red_val, green_val, blue_val, alpha_val;
- gint col, row, i;
-
- for (i = 0; i <= extra; ++i)
- {
- gimp_pixel_rgn_init (&(channel[i].pixel_rgn), channel[i].drawable,
- startcol, startrow, cols, rows, TRUE, FALSE);
- }
-
- for (row = 0; row < rows; ++row)
- {
- dest = channel[0].pixels + row * cols * channel[0].drawable->bpp;
-
- for (i = 1; i <= extra; ++i)
- channel[i].pixel = channel[i].pixels + row * cols;
-
- for (col = 0; col < cols; col++)
- {
- switch (photomet)
- {
- case PHOTOMETRIC_MINISBLACK:
- if (alpha)
- {
- if (tsvals.save_transp_pixels)
- {
- *dest++ = *source; source++;
- *dest++ = *source; source++;
- }
- else
- {
- gray_val = *source++;
- alpha_val = *source++;
- gray_val = MIN(gray_val, alpha_val);
- if (alpha_val)
- *dest++ = gray_val * 255 / alpha_val;
- else
- *dest++ = 0;
- *dest++ = alpha_val;
- }
- }
- else
- {
- *dest++ = *source++;
- }
- break;
-
- case PHOTOMETRIC_MINISWHITE:
- if (alpha)
- {
- if (tsvals.save_transp_pixels)
- {
- *dest++ = *source; source++;
- *dest++ = *source; source++;
- }
- else
- {
- gray_val = *source++;
- alpha_val = *source++;
- gray_val = MIN (gray_val, alpha_val);
-
- if (alpha_val)
- *dest++ = ((alpha_val - gray_val) * 255) / alpha_val;
- else
- *dest++ = 0;
- *dest++ = alpha_val;
- }
- }
- else
- {
- *dest++ = ~(*source++);
- }
- break;
-
- case PHOTOMETRIC_PALETTE:
- *dest++= *source++;
- if (alpha)
- *dest++= *source++;
- break;
-
- case PHOTOMETRIC_RGB:
- if (alpha)
- {
- if (tsvals.save_transp_pixels)
- {
- *dest++ = *source; source++;
- *dest++ = *source; source++;
- *dest++ = *source; source++;
- *dest++ = *source; source++;
- }
- else
- {
- red_val = *source++;
- green_val = *source++;
- blue_val = *source++;
- alpha_val = *source++;
- red_val = MIN (red_val, alpha_val);
- blue_val = MIN (blue_val, alpha_val);
- green_val = MIN (green_val, alpha_val);
-
- if (alpha_val)
- {
- *dest++ = (red_val * 255) / alpha_val;
- *dest++ = (green_val * 255) / alpha_val;
- *dest++ = (blue_val * 255) / alpha_val;
- }
- else
- {
- *dest++ = 0;
- *dest++ = 0;
- *dest++ = 0;
- }
- *dest++ = alpha_val;
- }
- }
- else
- {
- *dest++ = *source++;
- *dest++ = *source++;
- *dest++ = *source++;
- }
- break;
-
- default:
- /* This case was handled earlier */
- g_assert_not_reached();
- }
-
- for (i = 1; i <= extra; ++i)
- *channel[i].pixel++ = *source++;
- }
-
- if (align)
- {
- switch (photomet)
- {
- case PHOTOMETRIC_MINISBLACK:
- case PHOTOMETRIC_MINISWHITE:
- case PHOTOMETRIC_PALETTE:
- source += align * (1 + alpha + extra);
- break;
- case PHOTOMETRIC_RGB:
- source += align * (3 + alpha + extra);
- break;
- }
- }
- }
-
- for (i = 0; i <= extra; ++i)
- gimp_pixel_rgn_set_rect(&(channel[i].pixel_rgn), channel[i].pixels,
- startcol, startrow, cols, rows);
-}
-#endif
-
-#if 0
-static void
-read_bw (const guchar *source,
- channel_data *channel,
- gint startrow,
- gint startcol,
- gint rows,
- gint cols,
- gint align)
-{
- guchar *dest;
- gint col, row;
-
- gimp_pixel_rgn_init (&(channel[0].pixel_rgn), channel[0].drawable,
- startcol, startrow, cols, rows, TRUE, FALSE);
-
- for (row = 0; row < rows; ++row)
- {
- dest = channel[0].pixels + row * cols * channel[0].drawable->bpp;
-
- col = cols;
-
- while (col >= 8)
- {
- memcpy (dest, bit2byte + *source * 8, 8);
- dest += 8;
- col -= 8;
- source++;
- }
-
- if (col > 0)
- {
- memcpy (dest, bit2byte + *source * 8, col);
- dest += col;
- source++;
- }
-
- source += align;
- }
-
- gimp_pixel_rgn_set_rect(&(channel[0].pixel_rgn), channel[0].pixels,
- startcol, startrow, cols, rows);
-}
-#endif
-
/* Step through all <= 8-bit samples in an image */
#define NEXTSAMPLE(var) \
@@ -2048,188 +1619,6 @@ read_bw (const guchar *source,
#if 0
static void
-read_default (const guchar *source,
- channel_data *channel,
- gushort bps,
- gushort photomet,
- gint startrow,
- gint startcol,
- gint rows,
- gint cols,
- gboolean alpha,
- gint extra,
- gint align)
-{
- guchar *dest;
- gint gray_val, red_val, green_val, blue_val, alpha_val;
- gint col, row, i;
- gint bitsleft = 8, maxval = (1 << bps) - 1;
-
- for (i = 0; i <= extra; ++i)
- {
- gimp_pixel_rgn_init (&(channel[i].pixel_rgn), channel[i].drawable,
- startcol, startrow, cols, rows, TRUE, FALSE);
- }
-
- for (row = 0; row < rows; ++row)
- {
- dest = channel[0].pixels + row * cols * channel[0].drawable->bpp;
-
- for (i = 1; i <= extra; ++i)
- channel[i].pixel = channel[i].pixels + row * cols;
-
- for (col = 0; col < cols; col++)
- {
- switch (photomet)
- {
- case PHOTOMETRIC_MINISBLACK:
- NEXTSAMPLE (gray_val);
- if (alpha)
- {
- NEXTSAMPLE (alpha_val);
- if (tsvals.save_transp_pixels)
- {
- *dest++ = (gray_val * 255) / maxval;
- *dest++ = alpha_val;
- }
- else
- {
- gray_val = MIN (gray_val, alpha_val);
-
- if (alpha_val)
- *dest++ = (gray_val * 65025) / (alpha_val * maxval);
- else
- *dest++ = 0;
-
- *dest++ = alpha_val;
- }
- }
- else
- {
- *dest++ = (gray_val * 255) / maxval;
- }
- break;
-
- case PHOTOMETRIC_MINISWHITE:
- NEXTSAMPLE (gray_val);
- if (alpha)
- {
- NEXTSAMPLE (alpha_val);
- if (tsvals.save_transp_pixels)
- {
- *dest++ = ((maxval - gray_val) * 255) / maxval;
- *dest++ = alpha_val;
- }
- else
- {
- gray_val = MIN (gray_val, alpha_val);
-
- if (alpha_val)
- *dest++ = ((maxval - gray_val) * 65025) /
- (alpha_val * maxval);
- else
- *dest++ = 0;
-
- *dest++ = alpha_val;
- }
-
- }
- else
- {
- *dest++ = ((maxval - gray_val) * 255) / maxval;
- }
- break;
-
- case PHOTOMETRIC_PALETTE:
- NEXTSAMPLE (*dest++);
- if (alpha)
- NEXTSAMPLE (*dest++);
- break;
-
- case PHOTOMETRIC_RGB:
- NEXTSAMPLE (red_val);
- NEXTSAMPLE (green_val);
- NEXTSAMPLE (blue_val);
- if (alpha)
- {
- NEXTSAMPLE (alpha_val);
- if (tsvals.save_transp_pixels)
- {
- *dest++ = red_val;
- *dest++ = green_val;
- *dest++ = blue_val;
- *dest++ = alpha_val;
- }
- else
- {
- red_val = MIN (red_val, alpha_val);
- blue_val = MIN (blue_val, alpha_val);
- green_val = MIN (green_val, alpha_val);
-
- if (alpha_val)
- {
- *dest++ = (red_val * 255) / alpha_val;
- *dest++ = (green_val * 255) / alpha_val;
- *dest++ = (blue_val * 255) / alpha_val;
- }
- else
- {
- *dest++ = 0;
- *dest++ = 0;
- *dest++ = 0;
- }
-
- *dest++ = alpha_val;
- }
- }
- else
- {
- *dest++ = red_val;
- *dest++ = green_val;
- *dest++ = blue_val;
- }
- break;
-
- default:
- /* This case was handled earlier */
- g_assert_not_reached();
- }
-
- for (i = 1; i <= extra; ++i)
- {
- NEXTSAMPLE(alpha_val);
- *channel[i].pixel++ = alpha_val;
- }
- }
-
- if (align)
- {
- switch (photomet)
- {
- case PHOTOMETRIC_MINISBLACK:
- case PHOTOMETRIC_MINISWHITE:
- case PHOTOMETRIC_PALETTE:
- for (i = 0; i < align * (1 + alpha + extra); ++i)
- NEXTSAMPLE (alpha_val);
- break;
- case PHOTOMETRIC_RGB:
- for (i = 0; i < align * (3 + alpha + extra); ++i)
- NEXTSAMPLE (alpha_val);
- break;
- }
- }
-
- bitsleft = 0;
- }
-
- for (i = 0; i <= extra; ++i)
- gimp_pixel_rgn_set_rect (&(channel[i].pixel_rgn), channel[i].pixels,
- startcol, startrow, cols, rows);
-}
-#endif
-
-#if 0
-static void
read_separate (const guchar *source,
channel_data *channel,
gushort bps,
@@ -2283,6 +1672,7 @@ read_separate (const guchar *source,
}
#endif
+#if 0
static void
fill_bit2byte(void)
{
@@ -2302,3 +1692,4 @@ fill_bit2byte(void)
filled = TRUE;
}
+#endif
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]