This is a base class for holding image data in implementation-specific ways. More...
#include <juce_Image.h>
Classes | |
struct | Listener |
Used to receive callbacks for image data changes. More... | |
Public Types | |
using | BackupExtensions = ImagePixelDataBackupExtensions |
using | NativeExtensions = ImagePixelDataNativeExtensions |
using | Ptr = ReferenceCountedObjectPtr<ImagePixelData> |
Public Member Functions | |
ImagePixelData (Image::PixelFormat, int width, int height) | |
~ImagePixelData () override | |
virtual std::unique_ptr< LowLevelGraphicsContext > | createLowLevelContext ()=0 |
Creates a context that will draw into this image. | |
virtual Ptr | clone ()=0 |
Creates a copy of this image. | |
virtual std::unique_ptr< ImageType > | createType () const =0 |
Creates an instance of the type of this image. | |
virtual BackupExtensions * | getBackupExtensions () |
Returns a raw pointer to an instance of ImagePixelDataBackupExtensions if this ImagePixelData provides this extension, or nullptr otherwise. | |
virtual const BackupExtensions * | getBackupExtensions () const |
virtual void | initialiseBitmapData (Image::BitmapData &, int x, int y, Image::BitmapData::ReadWriteMode)=0 |
Initialises a BitmapData object. | |
virtual int | getSharedCount () const noexcept |
Returns the number of Image objects which are currently referring to the same internal shared image data. | |
virtual void | applyGaussianBlurEffectInArea (Rectangle< int > bounds, float radius) |
Applies a native blur effect to this image, if available. | |
void | applyGaussianBlurEffect (float radius) |
virtual void | applySingleChannelBoxBlurEffectInArea (Rectangle< int > bounds, int radius) |
Applies a native blur effect to this image, if available. | |
void | applySingleChannelBoxBlurEffect (int radius) |
virtual void | multiplyAllAlphasInArea (Rectangle< int > bounds, float amount) |
Multiples all alpha-channel values in the image by the specified amount. | |
void | multiplyAllAlphas (float amount) |
virtual void | desaturateInArea (Rectangle< int > bounds) |
Changes all the colours to be shades of grey, based on their current luminosity. | |
void | desaturate () |
void | sendDataChangeMessage () |
virtual NativeExtensions | getNativeExtensions () |
Public Member Functions inherited from ReferenceCountedObject | |
void | incReferenceCount () noexcept |
Increments the object's reference count. | |
void | decReferenceCount () noexcept |
Decreases the object's reference count. | |
bool | decReferenceCountWithoutDeleting () noexcept |
Decreases the object's reference count. | |
int | getReferenceCount () const noexcept |
Returns the object's current reference count. | |
Public Attributes | |
const Image::PixelFormat | pixelFormat |
The pixel format of the image data. | |
const int | width |
const int | height |
NamedValueSet | userData |
User-defined settings that are attached to this image. | |
ListenerList< Listener > | listeners |
Additional Inherited Members | |
Protected Member Functions inherited from ReferenceCountedObject | |
ReferenceCountedObject ()=default | |
Creates the reference-counted object (with an initial ref count of zero). | |
ReferenceCountedObject (const ReferenceCountedObject &) noexcept | |
Copying from another object does not affect this one's reference-count. | |
ReferenceCountedObject (ReferenceCountedObject &&) noexcept | |
Copying from another object does not affect this one's reference-count. | |
ReferenceCountedObject & | operator= (const ReferenceCountedObject &) noexcept |
Copying from another object does not affect this one's reference-count. | |
ReferenceCountedObject & | operator= (ReferenceCountedObject &&) noexcept |
Copying from another object does not affect this one's reference-count. | |
virtual | ~ReferenceCountedObject () |
Destructor. | |
void | resetReferenceCount () noexcept |
Resets the reference count to zero without deleting the object. | |
This is a base class for holding image data in implementation-specific ways.
You may never need to use this class directly - it's used internally by the Image class to store the actual image data. To access pixel data directly, you should use Image::BitmapData rather than this class.
ImagePixelData objects are created indirectly, by subclasses of ImageType.
using ImagePixelData::NativeExtensions = ImagePixelDataNativeExtensions |
ImagePixelData::ImagePixelData | ( | Image::PixelFormat | , |
int | width, | ||
int | height ) |
|
override |
|
pure virtual |
Creates a context that will draw into this image.
|
pure virtual |
Creates a copy of this image.
|
pure virtual |
Creates an instance of the type of this image.
|
virtual |
Returns a raw pointer to an instance of ImagePixelDataBackupExtensions if this ImagePixelData provides this extension, or nullptr otherwise.
|
virtual |
|
pure virtual |
Initialises a BitmapData object.
|
virtualnoexcept |
Returns the number of Image objects which are currently referring to the same internal shared image data.
This is different to the reference count as an instance of ImagePixelData can internally depend on another ImagePixelData via it's member variables.
|
virtual |
Applies a native blur effect to this image, if available.
This blur applies to all channels of the input image. It may be more expensive to calculate than a box blur, but should produce higher-quality results.
The default implementation will modify the image pixel-by-pixel on the CPU, which will be slow. Native image types may provide optimised implementations.
void ImagePixelData::applyGaussianBlurEffect | ( | float | radius | ) |
|
virtual |
Applies a native blur effect to this image, if available.
This is intended for blurring single-channel images, which is useful when rendering drop shadows. This is implemented as several box-blurs in series. The results should be visually similar to a Gaussian blur, but less accurate.
The default implementation will modify the image pixel-by-pixel on the CPU, which will be slow. Native image types may provide optimised implementations.
void ImagePixelData::applySingleChannelBoxBlurEffect | ( | int | radius | ) |
|
virtual |
Multiples all alpha-channel values in the image by the specified amount.
The default implementation will modify the image pixel-by-pixel on the CPU, which will be slow. Native image types may provide optimised implementations.
void ImagePixelData::multiplyAllAlphas | ( | float | amount | ) |
|
virtual |
Changes all the colours to be shades of grey, based on their current luminosity.
The default implementation will modify the image pixel-by-pixel on the CPU, which will be slow. Native image types may provide optimised implementations.
void ImagePixelData::desaturate | ( | ) |
void ImagePixelData::sendDataChangeMessage | ( | ) |
|
virtual |
const Image::PixelFormat ImagePixelData::pixelFormat |
The pixel format of the image data.
const int ImagePixelData::width |
const int ImagePixelData::height |
NamedValueSet ImagePixelData::userData |
User-defined settings that are attached to this image.
ListenerList<Listener> ImagePixelData::listeners |