martes, 10 de junio de 2008

PNGU 0.2b

Os presento la nueva versión de mi librería de manipulación de imágenes png para Wii y GC. Viene cargadita de novedades, así que espero que os guste :D

Características de la versión actual:

  • Está basada en libpng 1.2.29

  • Soporta imágenes de 8 y 16 bits por canal.

  • Soporta imágenes en formato RGB, RGBA, escala de grises y escala de grises + alfa.

  • Lee las dimensiones de la imágen, el formato de píxel, los colores transparentes y el color de fondo.

  • Convierte a formatos YCbYCr, RGB565 lineal, RGBA8 lineal, 4x4 RGB565, 4x4 RGB5A3 y 4x4 RGBA8.

  • Permite guardar imágenes YCbYCr en formato png RGB8.

  • Lee y escribe las imágenes en memoria o en dispositivos devoptab (SD, Gecko SD, etc...).

  • Está preparada para su uso en aplicaciones multihilo.

Limitaciones de la versión actual:
  • No carga imágenes de 1, 2 o 4 bits por canal.

  • No carga imágenes paletizadas.


I present you the new version of my png handling library for Wii and GC. It comes with a lot of new features, so I hope you like it :D

Current version features:

  • It's based in libpng 1.2.29

  • Handles images of 8 and 16 bits per channel.

  • Handles images in RGB, RGBA, grayscale and grayscale + alpha formats.

  • Reads image dimensions, pixel format, background color and transparent colors list.

  • Converts images to YCbYCr, linear RGB565, linear RGBA8, 4x4 RGB565, 4x4 RGB5A3 and 4x4 RGBA8 formats.

  • Saves YCbYCr images in png RGB8 format.

  • Handles images stored in memory or in devoptab devices (SD, Gecko SD, etc...).

  • It's ready to be used in multithreaded applications.

Current version limitations:
  • Doesn't handle images of 1, 2 or 4 bits per channel.

  • Doesn't handle paletized images.


Lista de aplicaciones que usan PNGU / List of applications using PNG
Descargar PNGU 0.2b / Download PNGU 0.2b

17 comentarios:

Unknown dijo...

Guay tio ;) ahora con libfat y transparencias te lo has currado :D

Hay una cosilla que nos da un error a los que programamos en linux, en pngu.c hay un #include "PNGU.h" que deberia estar en minusculas. Es una tonteria, pero igual a algun despistado le da unas horas de dolores de cabeza xD

Anónimo dijo...

enorabuena por el pngu 0.2.a

ya consegui compilar un app
correctamente

gracias

idleThoughts dijo...

I think there's a bug in pngu_free_info where you do not check PNGU_SOURCE_DEVICE before fclose

nozintusei dijo...

la librería está genial. Muchas gracias por el trabajo que estás haciendo.

Querría consultarte una cosa: ¿es posible usar tu librería pero al mismo tiempo hacer uso de las primitivas de dibujo de GRRLIB?

Frontier dijo...

noel: Por más tiempo que dedique uno a probar siempre hay algo que se escapa. Lo he solventado en la versión 0.2b que acabo de subir. Muchas gracias por el aviso.

idlethoughts: You are absolutely right. I've fixed it and uploaded a new release. Thanks.

nozintusei: De nada :) Si, es posible combinar PNGU y GRRLIB. Usa GRRLIB como de costumbre y cuando quieras pintar un png en la pantalla llama a PNGU_DecodeToRGB565 o a PNGU_DECODE_TO_COORDS_RGB565 pasándoles GRRLIB_buffer como búfer de destino. Para eso primero tendrás que declarar GRRLIB_buffer como extern dentro de tu programa.

Sinoriel dijo...

¿Si meto una avellana en un vaso de agua, es un fruto mojado?

Narakueitor dijo...

Quiero ser código xD

Anónimo dijo...

He hecho algunas pruebas en un poco de tiempo libre y la verdad es que es muy fácil.

Muchas gracias por el curro que te estás metiendo aparte con el revolution engine ;D

Sinoriel dijo...

Ya podrías haber llamado a esta librería para hacerla mas amigable PINGU en vez de PNGU

Frontier dijo...

Prometo consultarte la próxima vez que tenga que bautizar una librería jejeje

Anónimo dijo...

A mi me también me gusta, pero puede que le demandasen :S

http://www.clickandplay.com/Files/Images/Logo/Logo%20Credits/PINGU_trademark_CMYK.JPG

idleThoughts dijo...

FYI, sudoku uses pngu now
http://wiibrew.org/wiki/Homebrew_apps/Sudoku

Frontier dijo...

Great! :D

If you don't mind I'll add it to the applications list.

Tom Hagen dijo...

Mamoncio, se te echa de menos...

Rhydon dijo...

This is great. Too bad it doesn't handle writing PNGs too...

BlueChip dijo...

Having spoken to WinterMute, I understand that PNGU performs three malloc()'s per image. Then the first two malloc()'s are free()'d.

I have not done lots of research, but WinterMute tells me that this sequence leaves memory fragmented because the blocks used by the first two mallocs()s cannot be reclaimed ...For many good reasons, most embedded systems are not so friendly with memory defragmenting :/

I looked at the source, but it was quite busy. So I hope this information is useful too you. Please ask if you need any help - probably the easiest place to find me is via the grrlib forum.

BlueChip [GRRLIB Team member]

marioga dijo...

WEnas, primero tu libreria mola muxo, segundo, me puedes decir que funcion usar, como usarla y como tiene k ser el png para cargar transparencias (alpha)

Noticias anteriores