- ¿Duracion del reto?
- Si el BMP supera la resolucion de pantalla, hay que hacerle un escalado?? o esto se sale de la propuesta del reto y solamente hay que cargar BMPs que cojan en la resolucion de pantalla??
Decidi hacerlo con C# en modo de ventana, no me he decidido si usar DirectX o GDI+ o alguna otra.Apenas tengo hecha la interfaz grafica que creo que usare.
* Leer la información del archivo .bmp. * Convertirlo a un BITMAP de Allegro. * Una vez con esto, ¿qué sería válido para mostrar el BITMAP en pantalla? o Allegro cuenta con la función blit que me mandaría a pantalla (screen) este BITMAP. o ¿O habría que hacerlo "a mano", mandando los datos al BITMAP screen (copiando directamente en memoria) de Allegro?Para quien no ha manejado Allegro, esta librería define un tipo de dato BITMAP que contiene la información de una imagen, y screen es un BITMAP que apunta directamente a la memoria de video de la pantalla (lo que aparece en pantalla es lo que contiene el BITMAP screen).Aclaro, no planeo usar Allegro para participar en el reto, y si a alguien interesado en manejar Allegro (porque le interese comenzar a manejar esta librería o por otra razón) le sirve, pues adelante.
Mi duda es más bien en cuanto a los parámetros a cumplir del reto (lo de las funciones "de terceros" (casi cualquier otra opción por la que nos decantemos incluirá probablemente este tipo de cuestiones).
CitarDecidi hacerlo con C# en modo de ventana, no me he decidido si usar DirectX o GDI+ o alguna otra.Apenas tengo hecha la interfaz grafica que creo que usare. Yo tambien lo estoy haciendo en C#. Me falta unicamente la clase de dibujo y estoy en la misma duda que tu JuanK, la libreria GDI la domino mas, pero segun dicen es bastante lenta. Por cierto que no tienen ninguna funcion para dibujar pixels directamente.En otra aplicacion que hice para la universidad tuve que hacerlo dibujando elipses de radio 1 pixelEl domingo lo terminare , no pense que fuera a ir tan rapido ... salu2
Diodo, tecnicamente se puede decir que usar elipses es trampa, porque si puedes usar tecnicas para dibujar directamente.http://msdn.microsoft.com/library/default....arp11152001.aspEste en especial:http://msdn2.microsoft.com/en-us/library/5ey6h79d.aspx
*Para dibujar la imagen no se admiten funciones de terceros que hagan mas alla de poner un pixel en pantalla o en un buffer secundario.*Los bloques relacionados con el dibujo de pixels en pantalla o en buffer deben ser propios, salvo en el caso que se dibuje en un buffer secundario y luego se desee copiar este buffer secundario en pantalla, para lo cual es validon utilizar funciones de 'blit' incluidas en las librerias usadas
Y si uso librerias como Gtk, Tk o wxWidgets dibujando pixel por pixel?
TSimpleBitmap = class private FBitmap: PPixel24bit; //definido más arriba pero no posteo FBitmapHeader: TBitmapHeader;//definida más arriba pero no la posteo FWidth: LongWord; FHeight: LongWord; procedure SetSize(AWidth, AHeight: LongWord); function GetPixel(X, Y: LongWord): TPixel24bit; procedure SetHeight(const Value: LongWord); procedure SetPixel(X, Y: LongWord; const Value: TPixel24bit); procedure SetWidth(const Value: LongWord); procedure ReSize; public constructor Create; overload; constructor Create(AWidth, AHeight: LongWord); overload; destructor Destroy; override; property Width: LongWord read FWidth write SetWidth; property Height: LongWord read FHeight write SetHeight; //las propiedades que importan property Pixels[X,Y: LongWord]:TPixel24bit read GetPixel write SetPixel; procedure LoadFromFile(const FileName: String); procedure SaveToFile(const FileName: String); procedure Draw(DestBitmap: TCanvas); end;
Ya está terminado, pero no se porque causa, a veces, algunos bitmap que los modifico con el paint (en muy raras ocaciones) se abren torcidos
Es extraño pero al parecer al dibujar copiando los datos del bmp en 3l objeto Bitmap de C# parecer no ser necesaria esta validacion. Puedes pasarnos una de las imagenes con las que te fallaba? He tratado de crear casos y ninguno me dio incluso los que habia usado en una aplicacion que hice en C( donde si aplicaba el caso) no me fallaron al dibujar en el objeto bitmap de C#.
He agregado documentacion en los criterios a evaluar
Finished Siguiendo los enlaces de JuanK he conseguido mejorar el programa, tanto como que ahora los BMPs se cargan instantaneamente (ms) en pantalla, da igual el tamaño.CitarHe agregado documentacion en los criterios a evaluarA que te refieres con documentacion?? comentar el codigo?? Por cierto cuantos somos para el reto?? Parece que no va muy en serio la competencia. Bueno como decian lo imporatante es participar.Si les parece una vez acabados se podria crear un post con los codigos de diferentes lenguajes en los que hicimos el programa,.... , supongo que a alguien le seria de utilidadsalu2 PD : cuando quieras te lo mando JuanK