Subversion Repositories planix.SVN

Rev

Rev 2 | Blame | Compare with Previous | Last modification | View Log | RSS feed

/*
 * jpeg2eps.c
 * Copyright (C) 2000-2002 A.J. van Os; Released under GPL
 *
 * Description:
 * Functions to translate jpeg pictures into eps
 *
 */

#include <stdio.h>
#include "antiword.h"

#if defined(DEBUG)
static int      iPicCounter = 0;
#endif /* DEBUG */


#if defined(DEBUG)
/*
 * vCopy2File
 */
static void
vCopy2File(FILE *pFile, ULONG ulFileOffset, size_t tPictureLen)
{
        FILE    *pOutFile;
        size_t  tIndex;
        int     iTmp;
        char    szFilename[30];

        if (!bSetDataOffset(pFile, ulFileOffset)) {
                return;
        }

        sprintf(szFilename, "/tmp/pic/pic%04d.jpg", ++iPicCounter);
        pOutFile = fopen(szFilename, "wb");
        if (pOutFile == NULL) {
                return;
        }
        for (tIndex = 0; tIndex < tPictureLen; tIndex++) {
                iTmp = iNextByte(pFile);
                if (putc(iTmp, pOutFile) == EOF) {
                        break;
                }
        }
        (void)fclose(pOutFile);
} /* end of vCopy2File */
#endif /* DEBUG */

/*
 * bTranslateJPEG - translate a JPEG picture
 *
 * This function translates a picture from jpeg to eps
 *
 * return TRUE when sucessful, otherwise FALSE
 */
BOOL
bTranslateJPEG(diagram_type *pDiag, FILE *pFile,
        ULONG ulFileOffset, size_t tPictureLen, const imagedata_type *pImg)
{
#if defined(DEBUG)
        vCopy2File(pFile, ulFileOffset, tPictureLen);
#endif /* DEBUG */

        /* Seek to start position of JPEG data */
        if (!bSetDataOffset(pFile, ulFileOffset)) {
                return FALSE;
        }

        vImagePrologue(pDiag, pImg);
        vASCII85EncodeFile(pFile, pDiag->pOutFile, tPictureLen);
        vImageEpilogue(pDiag);

        return TRUE;
} /* end of bTranslateJPEG */