| |
| |
| #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"); |
| } |
| |
| |
| */ |
| |