void SaveThumbnail(DisplayState& ds) { if (!ds.thumbnail) return; ScopedMem<WCHAR> bmpPath(GetThumbnailPath(ds.filePath)); if (!bmpPath) return; ScopedMem<WCHAR> thumbsPath(path::GetDir(bmpPath)); if (dir::Create(thumbsPath)) SaveRenderedBitmap(ds.thumbnail, bmpPath); }
void RenderDocument(BaseEngine *engine, const WCHAR *renderPath) { for (int pageNo = 1; pageNo <= engine->PageCount(); pageNo++) { RenderedBitmap *bmp = engine->RenderBitmap(pageNo, 1.0, 0); if (!bmp) continue; ScopedMem<WCHAR> pageBmpPath(str::Format(renderPath, pageNo)); if (!SaveRenderedBitmap(bmp, pageBmpPath)) { size_t tgaDataLen; ScopedMem<unsigned char> tgaData(tga::SerializeBitmap(bmp->GetBitmap(), &tgaDataLen)); if (tgaData) file::WriteAll(pageBmpPath, tgaData.Get(), tgaDataLen); } delete bmp; } }