Una imagen de mapa de bits está formada por una matriz de pĂxeles (fotos, PNG, JPG…). Esta caracterĂstica hace que al ampliar demasiado, se aprecien los pĂxeles y por lo tanto pierda calidad.
Gráficos vectoriales
Los gráficos vectoriales no están formados por pĂxeles, sino por formas matemáticas (lĂneas, cĂrculos, polĂgonos…). CaracterĂsticas clave:
No pierden calidad al escalar.
Se crean con cĂłdigo.
Son ideales para animaciones y diseños generativos.
let img;
function preload() {
img = loadImage("bob.jpg"); // AquĂ podemos usar una imagen online o subir una propia
}
function setup() {
createCanvas(400, 300);
image(img, 0, 0, width, height);
}
Ejemplo de gráfico vectorial en p5.js
En este caso no existen imágenes de mapa de bits, sino que se dibujan figuras y todo se calcula matemáticamente. Tal y como hemos estado realizando hasta ahora.
📌 Aquà no hay imagen: todo se calcula matemáticamente.
Procesamiento de imágenes pĂxel a pĂxel
Procesamiento de imágenes pĂxel a pĂxel
Las imágenes de tipo mapa de bits nos permiten realizar una acciĂłn avanzada: modificar pĂxeles uno a uno. Cada pĂxel de la imagen tiene unas propiedades, entre otras el color y la transparencia:
Rojo
Verde
Azul
Alfa (transparencia)
Esas propiedades podrĂamos modificarlas para cada pĂxel. Una forma eficaz serĂa recorrer la imagen con bucles y realizar las modificaciones pĂxel a pĂxel. Ejemplo básico:
function preload() {
img = loadImage("bob.jpg");
}
function setup() {
createCanvas(400, 300);
image(img, 0, 0);
loadPixels(); // Carga los pĂxeles en un vector que podemos recorrer
let cambioColor = 100; // Incrementamos en 100 unidades cada color, lo que la pondrá con tonos más blancos
for (let i = 0; i < pixels.length; i += 4) { // Recorremos los pĂxeles y le modificamos color
pixels[i] = pixels[i] + cambioColor; // rojo
pixels[i + 1] = pixels[i + 1] + cambioColor; // verde
pixels[i + 2] = pixels[i + 2] + cambioColor; // azul
}
updatePixels(); // Actualizamos los pĂxeles
}
📌 Este cĂłdigo “tiñe” la imagen dándole tonallidades más claras (Cercanas al blanco) modificando cada pĂxel.
AplicaciĂłn de filtros
p5.js permite aplicar filtros directamente sobre imágenes o sobre el canvas. Ejemplo: filtro en blanco y negro.
function preload() {
img = loadImage("bob.jpg");
}
function setup() {
createCanvas(400, 300);
image(img, 0, 0, width, height);
filter(GRAY);
}
Otros filtros habituales:
BLUR
INVERT
THRESHOLD
📌 Los filtros modifican la imagen de forma automática, sin tocar pĂxeles a mano.