bool Rescale(RasterEncoder& tgt, Size tsz, Raster& src, const Rect& src_rc, Gate<int, int> progress) { tgt.Create(tsz, src); RescaleImage rs; rs.Create(tsz, src, src_rc); for(int i = 0; i < tsz.cy; i++) { if(progress(i, tsz.cy)) return false; rs.Get(tgt); tgt.WriteLine(); } return true; }
void cDrawRasterData::Open(const String& data, int _cx, int cy) { cx = _cx; ss.Open(data); raster = StreamRaster::OpenAny(ss); if(raster) si.Create(Size(cx, cy), *raster, raster->GetSize()); }
void cDrawRasterData::Render(ImageBuffer& ib) { for(int y = 0; y < ib.GetHeight(); y++) si.Get(ib[y]); }