Dom Abr 30, 2006 6:18 pm
|
 |
jahc83
Perlero Nuevo

|
Registrado: 30 Abr 2006
Mensajes: 5
|
|
| Lectura de bitmap de windows -BMP- |
|
|
Saludos a todos, es la primera vez que escribo aquí...
Bueno tengo un problema, tengo como proyecto final de sistemas operativos 1, leer un bitmap, mostrar su fileheader, su infoheader, su paleta de colores, e invertir a escala de grises la imagen en el caso de imágenes de 24 bits, no sé perl, nunca lo había usado, apenas estoy aprendiendo algunas cosas, ya tengo las 2 primeras, que no fue tan complicado, excepto por que tengo que usar el unpack() y no sabía cómo se usaba esa función o para qué servía, solo me quedan las otras 2, mostrar la paleta de colores e invertir los colores a grises, el problema es que no sé cómo hacerlo, ya busqué en internet cómo acceder a la paleta de colores de un BMP de windows y no encuentro nada, ojalá ustedes puedan ayudarme, porque su entrega es para el próximo miércoles...
de antemano, gracias a los que puedan ayudarme!
saludos |
|
|
|

Dom Abr 30, 2006 10:07 pm
|
 |
kidd
Creador de Perl en Español

|
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
|
|
|
|
|
Hola:
Te recomiendo que uses el Image::Magick lo cual te permite manipular imagenes de manera realmente sencilla. Por ejemplo, algunas cosas que puedes hacer:
| Código: |
use strict;
use Image::Magick;
my $image;
#Inicializamos el objeto
$image = Image::Magick->new;
#Leemos la imagen BMP
$image->Read('mi_imagen.bmp');
#Tipo de imagen
# Bilevel, Grayscale, GrayscaleMatte, Palette,
# PaletteMatte, TrueColor, TrueColorMatte,
# ColorSeparation, ColorSeparationMatte, Optimize
my $type = $image->Get('type');
#Cantidad de colores que tiene la imagen
my $colors = $image->Get('colors');
#Convertimos la imagen a escala de grises
$image->Quantize(colorspace=>'gray');
#Guardamos la imagen modificada en un nuevo archivo
$image->Write(filename=>'mi_imagen_gris.bmp');
|
Es realmente sencillo, te recomiendo que leas el manual pues lo más seguro es que vas a encontrar todo lo que necesitas con el módulo:
http://www.imagemagick.org/script/perl-magick.php
Saludos |
|

Lun May 01, 2006 12:59 pm
|
 |
jahc83
Perlero Nuevo

|
Registrado: 30 Abr 2006
Mensajes: 5
|
|
| kidd... |
|
|
kidd:
Gracias por contestar a mi pregunta, voy a investigar sobre ese módulo y a ver qué saco para hacer esto, nuevamente gracias.
Saludos |
|
Mar May 02, 2006 2:38 pm
|
 |
creating021
Vive para Perl en Español

|
Registrado: 23 Feb 2006
Mensajes: 478
Ubicación: Frente al monitor
|
|
|
|
Mar May 02, 2006 5:15 pm
|
 |
jahc83
Perlero Nuevo

|
Registrado: 30 Abr 2006
Mensajes: 5
|
|
| creating021 |
|
|
creating021:
Ya había visto esa página antes y de hecho de ahí me basé en el *.doc para saber qué tipo de dato le corespondía a cada elemento del infoheader, esos dos ya los tengo, el problema que tengo ahorita es que no sé como grabar la nueva paleta convertida a grises en el nuevo archivo, porque me pinta la nueva imagen toda de negro.
kidd:
Seguí tu consejo de utilizar imagemagick, y no sabes la sorpresa que me llevé de ver lo fácil que es con 5 líneas, no te miento genero la imagen en gris y la cargo, todavía hasta me dí el lujo de usar gtk (que tampoco sé usar gtk, pero viendo ejemplos y la api, me voy guiando!!).
Gracias de verdad!
Saludos!! |
|

Mar May 02, 2006 7:23 pm
|
 |
kidd
Creador de Perl en Español

|
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
|
|
|
|
|
Pues es de las principales ventajas que tiene Perl, la existencia de CPAN. Muchas veces nuestros problemas ya han sido solucionados por otras personas que tienen la gentileza de compartirlo, dándole a Perl un gran poder con el uso de módulos.
Ahora, acerca de GTK, nuestro amigo Marco hizo un tutorial excelente que habla acerca de como hacer interfases gráficas usando el GTK, el tutorial ha sido publicado en el sitio y lo puedes encontrar en la siguiente dirección:
http://perlenespanol.baboonsoftware.com/archives-tut/000154.html
Saludos |
|

Mar May 02, 2006 11:43 pm
|
 |
jahc83
Perlero Nuevo

|
Registrado: 30 Abr 2006
Mensajes: 5
|
|
| kidd |
|
|
kidd:
Sí, gracias a otros que comparten sus trabajos es que otros, podemos solucionar esos mismos problemas. Ese tutorial que comentas ya lo había leído porque precisamente de ahí es de donde estoy sacando el hacerle interfaz al programa este que entreo en unas horas! .
Saludos |
|
Mie May 03, 2006 1:14 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
|
|
|
|
|
| Este módulo (Win32::GUI::DIBitmap) tiene buena pinta. Convierte entre formatos, muestra información y es capaz de reducir el número de colores, además de colgar diréctamente del árbol Win32, con lo que es fácil de integrar en programas en windows.... |
|

Vie May 05, 2006 5:37 pm
|
 |
jahc83
Perlero Nuevo

|
Registrado: 30 Abr 2006
Mensajes: 5
|
|
| explorer |
|
|
explorer:
Si, me imago que ha de ser igual de fácil que el ImageMagick, pero supongo que es un módulo para perl sobre windows, no?, te pregunto porque le veo ahí el win32, y esto tiene que ser hecho en linux, porque es el sis. oper. en el que se centro la maestra.
Bueno, muchas gracias a todos por contestar e intentar ayudarme, vi muchas soluciones, y entre otras cosas, pude acceder a la paleta de los bitmaps sin los módulos que me sugirieron, pero se hicieron como 500 mil líneas mas obviamente, cuando termine esto, mandaré mi código a esta página para que los publiquen si quieren o haber que les hacen, hahaha...
Saludos |
|
Powered by phpBB © 2001, 2005 phpBB Group
|