jump to navigation

Hemos evolucionado 24 agosto 2006

Posted by Jesús in Programación.
trackback

Desde hace tiempo, tenía la sensación de que en la programación no habíamos evolucionado mucho. Al fin y al cabo, hoy en día casi todo se sigue moviendo en torno a C++/Java y alguna cosilla más, lo cual no es muy diferente a cómo estábamos hace 4 o 5 años. Ahora bien, estos días he tenido que hacer un poco de flashback en mi forma de programar debido a mis cacharreos con la DS, y me he dado cuenta de que hemos evolucionado, y mucho.

Veamos un ejemplo práctico: para manejar imágenes en Python, basta hacer algo como:

import Image  

img=Image.open("fichero.png")
img.resize((640,480))
img.save("fichero_salida.png")

Fácil, ¿no? Pues bien, estos días intento hacer algo parecido en C pelado, y mirando la documentación de libpng, me sale que para abrir un PNG hay que hacer algo parecido a esto:

char header[8];	// 8 is the maximum size that can be checked

/* open file and test for it being a png */
FILE *fp = fopen(file_name, "rb");
if (!fp)
	abort_("[read_png_file] File %s could not be opened for reading", file_name);
fread(header, 1, 8, fp);
if (png_sig_cmp(header, 0, 8))
	abort_("[read_png_file] File %s is not recognized as a PNG file", file_name);

/* initialize stuff */
png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);

if (!png_ptr)
	abort_("[read_png_file] png_create_read_struct failed");

info_ptr = png_create_info_struct(png_ptr);
if (!info_ptr)
	abort_("[read_png_file] png_create_info_struct failed");

if (setjmp(png_jmpbuf(png_ptr)))
	abort_("[read_png_file] Error during init_io");

png_init_io(png_ptr, fp);
png_set_sig_bytes(png_ptr, 8);

png_read_info(png_ptr, info_ptr);

width = info_ptr->width;
height = info_ptr->height;
color_type = info_ptr->color_type;
bit_depth = info_ptr->bit_depth;

number_of_passes = png_set_interlace_handling(png_ptr);
png_read_update_info(png_ptr, info_ptr);
...

…y paro porque la cosa sigue un rato más (el que quiera el ejemplo entero lo puede encontrar aquí). Y esto es sólo para abrir el PNG, ni hablemos ya de empezar a procesarlo y demás.

En fin, que juro por la cobertura de mi móvil que no volveré a decir que la programación no evoluciona (y que el monstruo espagueti volador bendiga a los creadores de Python 🙂 )

Anuncios

Comentarios»

No comments yet — be the first.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: