Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/pdf/xpdf/Thumb.cc
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@redhat.com>2005-03-01 22:24:10 (GMT)
committer Kristian Høgsberg <krh@src.gnome.org>2005-03-01 22:24:10 (GMT)
commit02eb16fef45712a91e24f6471b9e2f31249c888e (patch)
treed5579258f1d7fbd5a280fb2f1b97b74004b1dea9 /pdf/xpdf/Thumb.cc
parent332afee84ff4eb7df326d96f07efd6f82a87c0a2 (diff)
Use poppler instead of including xpdf source code. Poppler is a fork of
2005-03-01 Kristian Høgsberg <krh@redhat.com> Use poppler instead of including xpdf source code. Poppler is a fork of xpdf to build it as a shared library. See http://freedesktop.org/wiki/Software/poppler. * pdf/xpdf/*, pdf/goo/*, pdf/splash/*, pdf/fofi/*: Remove included xpdf fork. * pdf/Makefile.am: Build libpdfdocument.a here. * pdf/GDKSplashOutputDev.cc: * pdf/GDKSplashOutputDev.h: * pdf/GnomeVFSStream.cc: * pdf/GnomeVFSStream.h: * pdf-document.cc: * pdf-document.h: * test-gdk-output-dev.cc * Thumb.cc: * Thumb.h: Pull these files out of pdf/xpdf and adjust to compile against poppler.
Diffstat (limited to 'pdf/xpdf/Thumb.cc')
-rw-r--r--pdf/xpdf/Thumb.cc193
1 files changed, 0 insertions, 193 deletions
diff --git a/pdf/xpdf/Thumb.cc b/pdf/xpdf/Thumb.cc
deleted file mode 100644
index 0fdbf54..0000000
--- a/pdf/xpdf/Thumb.cc
+++ /dev/null
@@ -1,193 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-indent-level: 8; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2003 Remi Cohen-Scali
- *
- * Author:
- * Remi Cohen-Scali <Remi@Cohen-Scali.com>
- *
- * GPdf 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.
- *
- * GPdf 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.
- */
-
-#include <aconf.h>
-#include <string.h>
-
-#ifdef USE_GCC_PRAGMAS
-#pragma implementation
-#endif
-
-#include <gpdf-g-switch.h>
-# include <glib.h>
-#include <gpdf-g-switch.h>
-#include "gmem.h"
-#include "Object.h"
-#include "Gfx.h"
-#include "GfxState.h"
-#include "Thumb.h"
-
-/*
- * Thumb
- */
-
-Thumb::Thumb(XRef *xrefA, Object *obj) :
- xref(xrefA),
- str(NULL),
- ok_flag(0)
-{
- Object obj1, obj2;
- Dict *dict;
- GfxColorSpace *colorSpace;
-
- do {
- /* Get stream dict */
- dict = obj->streamGetDict ();
- str = obj->getStream();
-
- /* Get width */
- dict->lookup ("Width", &obj1);
- if (obj1.isNull ())
- {
- obj1.free ();
- dict->lookup ("W", &obj1);
- }
- if (!obj1.isInt ()) {
- fprintf (stderr, "Error: Invalid Width object %s\n",
- obj1.getTypeName ());
- obj1.free ();
- break;
- }
- width = obj1.getInt ();
- obj1.free ();
-
- /* Get heigth */
- dict->lookup ("Height", &obj1);
- if (obj1.isNull ())
- {
- obj1.free ();
- dict->lookup ("H", &obj1);
- }
- if (!obj1.isInt ()) {
- fprintf (stderr, "Error: Invalid Height object %s\n",
- obj1.getTypeName ());
- obj1.free ();
- break;
- }
- height = obj1.getInt ();
- obj1.free ();
-
- /* bit depth */
- dict->lookup ("BitsPerComponent", &obj1);
- if (obj1.isNull ())
- {
- obj1.free ();
- dict->lookup ("BPC", &obj1);
- }
- if (!obj1.isInt ()) {
- fprintf (stderr, "Error: Invalid BitsPerComponent object %s\n",
- obj1.getTypeName ());
- obj1.free ();
- break;
- }
- bits = obj1.getInt ();
- obj1.free ();
-
- /* Get color space */
- dict->lookup ("ColorSpace", &obj1);
- if (obj1.isNull ())
- {
- obj1.free ();
- dict->lookup ("CS", &obj1);
- }
- colorSpace = GfxColorSpace::parse(&obj1);
- obj1.free();
- if (!colorSpace) {
- fprintf (stderr, "Error: Cannot parse color space\n");
- break;
- }
-
- dict->lookup("Decode", &obj1);
- if (obj1.isNull()) {
- obj1.free();
- dict->lookup("D", &obj1);
- }
- colorMap = new GfxImageColorMap(bits, &obj1, colorSpace);
- obj1.free();
- if (!colorMap->isOk()) {
- fprintf (stderr, "Error: invalid colormap\n");
- delete colorMap;
- colorMap = NULL;
- }
-
- dict->lookup ("Length", &obj1);
- if (!obj1.isInt ()) {
- fprintf (stderr, "Error: Invalid Length Object %s\n",
- obj1.getTypeName ());
- obj1.free ();
- break;
- }
- length = obj1.getInt ();
- obj1.free ();
-
- str->addFilters(obj);
-
- ok_flag = 1;
- }
- while (0);
-}
-
-unsigned char *
-Thumb::getPixbufData()
-{
- ImageStream *imgstr;
- unsigned char *pixbufdata;
- unsigned int pixbufdatasize;
- int row, col;
- unsigned char *p;
-
- /* RGB Pixbuf data */
- pixbufdatasize = width * height * 3;
- if (colorMap) {
- pixbufdata =(unsigned char *)g_malloc(pixbufdatasize);
- } else {
- pixbufdata =(unsigned char *)g_malloc0(pixbufdatasize);
- return pixbufdata;
- }
-
- p = pixbufdata;
-
- imgstr = new ImageStream(str, width, colorMap->getNumPixelComps(), colorMap->getBits());
- imgstr->reset();
- for (row = 0; row < height; ++row) {
- for (col = 0; col < width; ++col) {
- Guchar pix[gfxColorMaxComps];
- GfxRGB rgb;
-
- imgstr->getPixel(pix);
- colorMap->getRGB(pix, &rgb);
-
- *p++ = (guchar)(rgb.r * 255.99999);
- *p++ = (guchar)(rgb.g * 255.99999);
- *p++ = (guchar)(rgb.b * 255.99999);
- }
- }
- delete imgstr;
-
- return pixbufdata;
-}
-
-Thumb::~Thumb() {
- delete colorMap;
- delete str;
-}
-