Minor ImageBufferRaster extension

git-svn-id: svn://ultimatepp.org/upp/trunk@1680 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
rylek 2009-11-05 07:59:05 +00:00
parent ed6dcd1842
commit a66c2b2e24
2 changed files with 20 additions and 6 deletions

View file

@ -53,9 +53,21 @@ void ImageWriter::WriteLineRaw(const byte *s)
}
}
ImageBufferRaster::ImageBufferRaster(const ImageBuffer& buffer_)
: buffer(buffer_)
{
crop = buffer.GetSize();
}
ImageBufferRaster::ImageBufferRaster(const ImageBuffer& buffer_, const Rect& crop_)
: buffer(buffer_)
{
crop = crop_ & Rect(buffer.GetSize());
}
Size ImageBufferRaster::GetSize()
{
return buffer.GetSize();
return crop.Size();
}
Raster::Info ImageBufferRaster::GetInfo()
@ -71,7 +83,7 @@ Raster::Info ImageBufferRaster::GetInfo()
Raster::Line ImageBufferRaster::GetLine(int line)
{
return Line(buffer[line], false);
return Line(buffer[line + crop.top] + crop.left, false);
}
inline Stream& operator % (Stream& strm, Color& color)

View file

@ -31,14 +31,16 @@ private:
class ImageBufferRaster : public Raster {
public:
ImageBufferRaster(const ImageBuffer& buffer) : buffer(buffer) {}
ImageBufferRaster(const ImageBuffer& buffer);
ImageBufferRaster(const ImageBuffer& buffer, const Rect& crop);
virtual Size GetSize();
virtual Info GetInfo();
virtual Line GetLine(int line);
virtual Size GetSize();
virtual Info GetInfo();
virtual Line GetLine(int line);
private:
const ImageBuffer& buffer;
Rect crop;
};
class HRRInfo