tahoma2d/toonz/sources/image/quantel/tiio_quantel.cpp
2016-06-15 15:43:10 +09:00

90 lines
2 KiB
C++

#include "tiio_quantel.h"
//#include "texception.h"
#include "tfilepath.h"
#include "filequantel.h"
/*
//------------------------------------------------------------
namespace {
int getTypeFromExt(const std::string &ext)
{
if (ext == "qnt")
return QNT_FORMAT;
if (ext == "qtl")
return QTL_FORMAT;
if (ext == "yuv")
return YUV_FORMAT;
if (ext == "sdl")
return SDL_FORMAT;
if (ext == "vpb")
return VPB_FORMAT;
return QNT_FORMAT;
}
}; //namespace
//------------------------------------------------------------
TImageP TImageReaderQuantel::load()
{
int w = 0, h = 0;
int type = getTypeFromExt(getFilePath().getType());
void *buffer = img_read_quantel(getFilePath().getWideString().c_str(), &w, &h,
type);
if (buffer)
{
TRaster32P raster(w, h, w, (TPixel32*)buffer);
TRasterImageP rasImage(raster);
return TImageP(rasImage);
}
throw TImageException(getFilePath(), "unable to load file");
}
//------------------------------------------------------------
TDimension TImageReaderQuantel::getSize() const
{
int w, h;
img_read_quantel_info(getFilePath().getWideString().c_str(), &w, &h,
getTypeFromExt(getFilePath().getType()));
return TDimension(w, h);
}
//------------------------------------------------------------
TRect TImageReaderQuantel::getBBox() const
{
int w, h;
img_read_quantel_info(getFilePath().getWideString().c_str(), &w, &h,
getTypeFromExt(getFilePath().getType()));
return TRect(0,0,w-1, h-1);
}
//============================================================
void TImageWriterQuantel::save(const TImageP &image)
{
TRasterImageP rasImage(image);
TRaster32P raster;
raster = rasImage->getRaster();
if (!raster)
throw TException("not a rasterimage!");
if (raster->getLx() != raster->getWrap())
throw TException ("TImageWriterQuantel::save lx != wrap");
int type = getTypeFromExt(getFilePath().getType());
if (!img_write_quantel(getFilePath().getWideString().c_str(),
raster->getRawData(), raster->getLx(), raster->getLy(), type))
throw TException("error writing file");
}
*/