Las imágenes PNG son capaces de admitir varias propiedades de imagen, como colores múltiples, grado de transparencia, corrección gamma, compresión sin pérdidas, etc. Las imágenes PNG se utilizan ampliamente y se prefieren para numerosos tipos de imágenes.
Para trabajar con archivos PNG, utilizaremos la biblioteca C++ de código abierto contenedor independiente de la plataforma PNGwriter para libpng (biblioteca de referencia PNG), una de las bibliotecas más ricas en funciones, escrita en C . La biblioteca PNGwriter funciona en Linux, Unix, macOS y Windows. Sus funciones admitidas incluyen la apertura de imágenes PNG existentes, el trazado y la lectura de píxeles en los espacios de color RGB, HSV y CMYK, formas básicas, escalado, interpolación bilineal, soporte completo de texto rotado y suavizado TrueType y curvas Bezier. Requiere la biblioteca FreeType2 para soporte de texto. Para obtener más documentación y bibliotecas, visite SourceForge , PNGwriter-github .
Cómo se generan las imágenes:
los píxeles son la unidad más pequeña que genera colectivamente una imagen. Cada píxel tiene un valor numérico que representa un color. A continuación se muestran los pasos:
- Elegimos el alto y ancho deseado de la imagen.
- En la deseada, iteramos y aplicamos colores píxel a píxel.
- Esta colección de píxeles se almacena luego con la extensión y las propiedades adecuadas, generando así una imagen.
Generación de imagen mediante la aplicación de colores:
A continuación se muestra el programa que genera las imágenes gráficas del portal RGBA en C++:
// C++ program to generate PNG images #include <iostream> #include <pngwriter.h> #include <string> // Function to generate PNG image void generate_PNG(int const width, int const height, std::string filepath) { // Print the filepath cout << endl << "Filepath: " << filepath.c_str(); // Generate the flag pngwriter flag{ width, height, 0, filepath.data() }; // Calculate sizes int const size = width / 3; // Fill the squares flag.filledsquare(0, 0, size, 2 * size, 0, 0, 65535); flag.filledsquare(size, 0, 2 * size, 2 * size, 0, 65535, 65535); flag.filledsquare(2 * size, 0, 3 * size, 2 * size, 65535, 0, 65535); // Close the flag flag.close(); } // Driver code int main() { // Given width and height int width = 300, height = 200; // Filepath std::string filepath; // Function call to generate PNG image generate_PNG(width, height, filepath); return 0; }
Explicación:
El programa anterior toma ancho, alto y dirección de archivo con un nombre de archivo. La clase pngwriter representa una imagen PNG. El constructor de la imagen PNG nos permite establecer el ancho y la altura en píxeles, un color de fondo y la ruta al archivo donde se debe guardar la imagen. Como se ilustra en el código anterior, simplemente organizamos tres colores sólidos uno al lado del otro y para eso, usamos la función fillsquare() que ha tomado el valor de las coordenadas xy desde las posiciones de inicio hasta el final y los valores de color (R, G, B ) . Cuando la imagen se guarde en la memoria, llame al método close() para guardarla en un archivo de disco.
Publicación traducida automáticamente
Artículo escrito por sohammalviya65 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA