Librería de Arduino Image Scaling Deja un comentario

La librería Image Scaling contiene algoritmos básicos para el escalado de imágenes en un microprocesador como Arduino.

Los usos típicos de la librería son, por ejemplo, adaptar una imagen al tamaño de la pantalla disponible. También es útil para realizar el dibujado a una resolución inferior al de la pantalla, para acelerar el render, y posteriormente escalarlo.

Los algoritmos disponibles son los siguientes:

  • Average. Apropiado para reducir, procesado lento.
  • Scalar. Apropiado para aumentar, procesado muy rápido.
  • NearestNeighbor. Apropiado para aumentar, procesado rápido.
  • Bilineal. Apropiado para aumentar, procesado lento.

La librería es compatible con la librería TFT_eSPI de forma nativa, o con otras a través de UnifiedGFX.

USO

#pragma GCC optimize ("-Ofast")

#include 
#include 
#include 

const uint8_t origSize = 64;
const uint8_t destSize = 16;

TFT_eSprite Original = TFT_eSprite(&M5.Lcd);
TFT_eSprite Scaled = TFT_eSprite(&M5.Lcd);
TFT_eSprite Final = TFT_eSprite(&M5.Lcd);

void setup() {
	Serial.begin(115200);
	M5.begin();
	M5.Lcd.setRotation(0);

	Original.setColorDepth(16);
	Original.createSprite(origSize, origSize);
	Original.fillScreen(TFT_BLACK);

	auto color = TFT_CYAN;
	const int grid = 6;
	for (auto x = 0; x < grid; x++)
	{
		for (auto y = 0; y < grid; y++)
		{
			Original.fillRect(x * origSize / grid, y * origSize / grid, origSize / grid, origSize / grid, color);
			color = color == TFT_RED ? TFT_CYAN : TFT_RED;
		}
		color = color == TFT_RED ? TFT_CYAN : TFT_RED;
	}

	Scaled.setColorDepth(16);
	Scaled.createSprite(destSize, destSize);
	Scaled.fillScreen(TFT_BLACK);

	Final.setColorDepth(16);
	Final.createSprite(origSize, origSize);
	Final.fillScreen(TFT_BLACK);
}

void Render()
{
	ImageScaling::Average(Original, Scaled);
	ImageScaling::Bilineal(Scaled, Final);

	Original.pushSprite(0, 0);
	Scaled.pushSprite(30, 64 + 10);
	Final.pushSprite(0, 160 - 64);
}

void loop()
{
	M5.update();

	Render();
	delay(500);
}

Instalación

  • Descargar la última versión desde GitHub
  • Descomprimir el archivo
  • Copiar en tu carpeta de librerías (normalmente Mis DocumentosArduinolibraries)
  • Relanzar el IDE de Arduino

Si te ha gustado esta entrada y quieres leer más sobre Arduino puedes consultar la sección
tutoriales de Arduino
0 0 votes
Article Rating

Anuncio:

Anuncio:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Enviar Whatsapp
Hola 👋
¿En qué podemos ayudarte?