36 [[nodiscard]]
constexpr bool empty() const noexcept {
40 [[nodiscard]]
constexpr int width() const noexcept {
44 [[nodiscard]]
constexpr int height() const noexcept {
50 return (
empty() && other.empty()) || (
minX == other.minX &&
minY == other.minY &&
51 maxX == other.maxX &&
maxY == other.maxY);
56[[nodiscard]]
constexpr bool pixelInBounds(
int width,
int height,
int x,
int y)
noexcept {
57 return x >= 0 && y >= 0 && x < width && y < height;
76 a.minX < b.minX ? a.minX : b.minX,
77 a.minY < b.minY ? a.minY : b.minY,
78 a.maxX > b.maxX ? a.maxX : b.maxX,
79 a.maxY > b.maxY ? a.maxY : b.maxY,
91PixelRegion
setPixel(DecodedImage& image,
int x,
int y, std::uint32_t color);
103PixelRegion
erasePixel(DecodedImage& image,
int x,
int y);
120PixelRegion
drawLine(DecodedImage& image,
int x0,
int y0,
int x1,
int y1, std::uint32_t color);
136PixelRegion
eraseLine(DecodedImage& image,
int x0,
int y0,
int x1,
int y1);
152PixelRegion
floodFill(DecodedImage& image,
int x,
int y, std::uint32_t color);
161[[nodiscard]] std::optional<std::uint32_t>
pickColor(
const DecodedImage& image,
int x,
172[[nodiscard]] std::vector<std::uint32_t>
readRegion(
const DecodedImage& image,
173 const PixelRegion& region);
182void writeRegion(DecodedImage& image,
const PixelRegion& region,
183 const std::vector<std::uint32_t>& data);
197 [[nodiscard]]
bool empty() const noexcept {
211PixelRegion
flipHorizontal(DecodedImage& image,
const PixelRegion& region);
215PixelRegion
flipVertical(DecodedImage& image,
const PixelRegion& region);
228PixelRegion
rotateClockwise(DecodedImage& image,
const PixelRegion& region);
247PixelRegion
moveRegion(DecodedImage& image,
const PixelRegion& region,
int dx,
int dy);
255[[nodiscard]] PixelClipboard
copyRegion(
const DecodedImage& image,
const PixelRegion& region);
268PixelRegion
pasteClipboard(DecodedImage& image,
const PixelClipboard& clipboard,
int x,
int y);
Chargement de textures GPU depuis des fichiers image (EX-REN-041), au travers de QRhi.
Definition AudioEngine.cpp:15
PixelRegion setPixel(DecodedImage &image, int x, int y, std::uint32_t color)
Pose un pixel d'une couleur donnée.
Definition PixelOperations.cpp:70
PixelRegion eraseLine(DecodedImage &image, int x0, int y0, int x1, int y1)
Efface une ligne pleine entre deux positions (même tracé que drawLine, alpha nul plutôt qu'une couleu...
Definition PixelOperations.cpp:93
PixelRegion rotateCounterClockwise(DecodedImage &image, const PixelRegion ®ion)
Pivote le contenu d'une région d'un quart de tour, sens antihoraire (trois quarts de tour horaires,...
Definition PixelOperations.cpp:261
constexpr PixelRegion unionPixelRegion(const PixelRegion &a, const PixelRegion &b) noexcept
Union de deux régions (la plus petite région couvrant les deux).
Definition PixelOperations.h:67
std::optional< std::uint32_t > pickColor(const DecodedImage &image, int x, int y) noexcept
Couleur du pixel à une position donnée (outil pipette).
Definition PixelOperations.cpp:138
PixelRegion drawLine(DecodedImage &image, int x0, int y0, int x1, int y1, std::uint32_t color)
Trace une ligne pleine entre deux positions (algorithme de Bresenham).
Definition PixelOperations.cpp:88
PixelRegion flipHorizontal(DecodedImage &image, const PixelRegion ®ion)
Retourne une région horizontalement (miroir gauche-droite), en place.
Definition PixelOperations.cpp:213
void writeRegion(DecodedImage &image, const PixelRegion ®ion, const std::vector< std::uint32_t > &data)
Écrit des pixels dans une région — inverse de readRegion, utilisé par hmi::PixelHistory pour restaure...
Definition PixelOperations.cpp:160
PixelClipboard copyRegion(const DecodedImage &image, const PixelRegion ®ion)
Copie les pixels d'une région dans un presse-papiers autonome (ne référence plus image).
Definition PixelOperations.cpp:286
PixelRegion floodFill(DecodedImage &image, int x, int y, std::uint32_t color)
Remplit, de proche en proche, la zone connexe (4-connexité) de même couleur que le pixel de départ.
Definition PixelOperations.cpp:97
PixelRegion pasteClipboard(DecodedImage &image, const PixelClipboard &clipboard, int x, int y)
Colle un presse-papiers dans l'image, coin haut-gauche à (x, y).
Definition PixelOperations.cpp:297
PixelRegion flipVertical(DecodedImage &image, const PixelRegion ®ion)
Retourne une région verticalement (miroir haut-bas), en place.
Definition PixelOperations.cpp:232
constexpr bool pixelInBounds(int width, int height, int x, int y) noexcept
Definition PixelOperations.h:56
PixelRegion rotateClockwise(DecodedImage &image, const PixelRegion ®ion)
Pivote le contenu d'une région d'un quart de tour, sens horaire.
Definition PixelOperations.cpp:251
PixelRegion moveRegion(DecodedImage &image, const PixelRegion ®ion, int dx, int dy)
Déplace le contenu d'une région d'un décalage donné.
Definition PixelOperations.cpp:275
PixelRegion erasePixel(DecodedImage &image, int x, int y)
Efface un pixel (alpha nul), sans changer sa couleur RVB.
Definition PixelOperations.cpp:78
std::vector< std::uint32_t > readRegion(const DecodedImage &image, const PixelRegion ®ion)
Copie les pixels d'une région, ligne par ligne — capture le « avant » ou l'« après » d'une entrée d'h...
Definition PixelOperations.cpp:145
Contenu copié depuis un tampon (presse-papiers de l'atelier, LOT-54 TACHE-06).
Definition PixelOperations.h:191
bool empty() const noexcept
Definition PixelOperations.h:197
int height
Definition PixelOperations.h:193
std::vector< std::uint32_t > pixels
Definition PixelOperations.h:194
int width
Definition PixelOperations.h:192
Rectangle de pixels modifié par une opération (bornes incluses).
Definition PixelOperations.h:29
int maxY
Definition PixelOperations.h:33
int maxX
maxX < minX (valeur par défaut) : région vide.
Definition PixelOperations.h:32
constexpr bool operator==(const PixelRegion &other) const noexcept
Definition PixelOperations.h:49
constexpr int height() const noexcept
Definition PixelOperations.h:44
constexpr int width() const noexcept
Definition PixelOperations.h:40
int minY
Definition PixelOperations.h:31
int minX
Definition PixelOperations.h:30
constexpr bool empty() const noexcept
Definition PixelOperations.h:36