ref: dae5a44111dfb21a714824a5cec2abee4f9f9080
dir: /sys/src/cmd/aux/antiword/imgtrans.c/
/* * imgtrans.c * Copyright (C) 2000-2002 A.J. van Os; Released under GPL * * Description: * Generic functions to translate Word images */ #include <stdio.h> #include "antiword.h" /* * bTranslateImage - translate the image * * This function reads the type of the given image and and gets it translated. * * return TRUE when sucessful, otherwise FALSE */ BOOL bTranslateImage(diagram_type *pDiag, FILE *pFile, BOOL bMinimalInformation, ULONG ulFileOffsetImage, const imagedata_type *pImg) { options_type tOptions; DBG_MSG("bTranslateImage"); fail(pDiag == NULL); fail(pFile == NULL); fail(ulFileOffsetImage == FC_INVALID); fail(pImg == NULL); fail(pImg->iHorSizeScaled <= 0); fail(pImg->iVerSizeScaled <= 0); vGetOptions(&tOptions); fail(tOptions.eImageLevel == level_no_images); if (bMinimalInformation) { return bAddDummyImage(pDiag, pImg); } switch (pImg->eImageType) { case imagetype_is_dib: return bTranslateDIB(pDiag, pFile, ulFileOffsetImage + pImg->tPosition, pImg); case imagetype_is_jpeg: return bTranslateJPEG(pDiag, pFile, ulFileOffsetImage + pImg->tPosition, pImg->tLength - pImg->tPosition, pImg); case imagetype_is_png: if (tOptions.eImageLevel == level_ps_2) { return bAddDummyImage(pDiag, pImg); } return bTranslatePNG(pDiag, pFile, ulFileOffsetImage + pImg->tPosition, pImg->tLength - pImg->tPosition, pImg); case imagetype_is_emf: case imagetype_is_wmf: case imagetype_is_pict: case imagetype_is_external: /* FIXME */ return bAddDummyImage(pDiag, pImg); case imagetype_is_unknown: default: DBG_DEC(pImg->eImageType); return bAddDummyImage(pDiag, pImg); } } /* end of bTranslateImage */