From 02eb16fef45712a91e24f6471b9e2f31249c888e Mon Sep 17 00:00:00 2001 From: Kristian Høgsberg Date: Tue, 01 Mar 2005 22:24:10 +0000 Subject: Use poppler instead of including xpdf source code. Poppler is a fork of 2005-03-01 Kristian Høgsberg 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. --- (limited to 'pdf/xpdf/Thumb.cc') 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 - * - * 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 -#include - -#ifdef USE_GCC_PRAGMAS -#pragma implementation -#endif - -#include -# include -#include -#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; -} - -- cgit v0.9.1