LMMS
Loading...
Searching...
No Matches
juce::Image::BitmapData Class Referencefinal

#include <juce_Image.h>

Classes

class  BitmapDataReleaser

Public Types

enum  ReadWriteMode { readOnly , writeOnly , readWrite }

Public Member Functions

 BitmapData (Image &image, int x, int y, int w, int h, ReadWriteMode mode)
 BitmapData (const Image &image, int x, int y, int w, int h)
 BitmapData (const Image &image, ReadWriteMode mode)
 ~BitmapData ()
uint8getLinePointer (int y) const noexcept
uint8getPixelPointer (int x, int y) const noexcept
Colour getPixelColour (int x, int y) const noexcept
void setPixelColour (int x, int y, Colour colour) const noexcept
Rectangle< intgetBounds () const noexcept

Public Attributes

uint8data
size_t size
PixelFormat pixelFormat
int lineStride
int pixelStride
int width
int height
std::unique_ptr< BitmapDataReleaserdataReleaser

Detailed Description

Retrieves a section of an image as raw pixel data, so it can be read or written to.

You should only use this class as a last resort - messing about with the internals of an image is only recommended for people who really know what they're doing!

A BitmapData object should be used as a temporary, stack-based object. Don't keep one hanging around while the image is being used elsewhere.

Depending on the way the image class is implemented, this may create a temporary buffer which is copied back to the image when the object is deleted, or it may just get a pointer directly into the image's raw data.

You can use the stride and data values in this class directly, but don't alter them! The actual format of the pixel data depends on the image's format - see Image::getFormat(), and the PixelRGB, PixelARGB and PixelAlpha classes for more info.

Member Enumeration Documentation

◆ ReadWriteMode

enum juce::Image::BitmapData::ReadWriteMode
Enumerator
readOnly 
writeOnly 
readWrite 

Constructor & Destructor Documentation

◆ BitmapData() [1/3]

juce::Image::BitmapData::BitmapData ( Image & image,
int x,
int y,
int w,
int h,
BitmapData::ReadWriteMode mode )

◆ BitmapData() [2/3]

juce::Image::BitmapData::BitmapData ( const Image & image,
int x,
int y,
int w,
int h )

◆ BitmapData() [3/3]

juce::Image::BitmapData::BitmapData ( const Image & image,
BitmapData::ReadWriteMode mode )

◆ ~BitmapData()

juce::Image::BitmapData::~BitmapData ( )

Member Function Documentation

◆ getBounds()

Rectangle< int > juce::Image::BitmapData::getBounds ( ) const
inlinenoexcept

Returns the size of the bitmap.

◆ getLinePointer()

uint8 * juce::Image::BitmapData::getLinePointer ( int y) const
inlinenoexcept

Returns a pointer to the start of a line in the image. The coordinate you provide here isn't checked, so it's the caller's responsibility to make sure it's not out-of-range.

◆ getPixelColour()

Colour juce::Image::BitmapData::getPixelColour ( int x,
int y ) const
noexcept

Returns the colour of a given pixel. For performance reasons, this won't do any bounds-checking on the coordinates, so it's the caller's responsibility to make sure they're within the image's size.

◆ getPixelPointer()

uint8 * juce::Image::BitmapData::getPixelPointer ( int x,
int y ) const
inlinenoexcept

Returns a pointer to a pixel in the image. The coordinates you give here are not checked, so it's the caller's responsibility to make sure they're not out-of-range.

◆ setPixelColour()

void juce::Image::BitmapData::setPixelColour ( int x,
int y,
Colour colour ) const
noexcept

Sets the colour of a given pixel. For performance reasons, this won't do any bounds-checking on the coordinates, so it's the caller's responsibility to make sure they're within the image's size.

Member Data Documentation

◆ data

uint8* juce::Image::BitmapData::data

The raw pixel data, packed according to the image's pixel format.

◆ dataReleaser

std::unique_ptr<BitmapDataReleaser> juce::Image::BitmapData::dataReleaser

◆ height

int juce::Image::BitmapData::height

◆ lineStride

int juce::Image::BitmapData::lineStride

The number of bytes between each line.

◆ pixelFormat

PixelFormat juce::Image::BitmapData::pixelFormat

The format of the data.

◆ pixelStride

int juce::Image::BitmapData::pixelStride

The number of bytes between each pixel.

◆ size

size_t juce::Image::BitmapData::size

The number of valid/allocated bytes after data. May be smaller than "lineStride * height" if this is a section of a larger image.

◆ width

int juce::Image::BitmapData::width

The documentation for this class was generated from the following files: