Asuntos Oficiales > Retos
Formato Bmp
inforsystem:
--- Cita de: "Danielo" ---
--- Citar ---verigua en gdi acerca de lock bytes
--- Fin de la cita ---
No encontré mucho sobre lock bytes, pero por lo poco que vi y entendí :( me parece que :think: ¿es para trabajar con DirectX?
--- Citar ---http://winapi.conclase.net/
--- Fin de la cita ---
Excelente página!!!... es con la que vengo aprendiendo desde el principio del reto ya que está todo muy bien explicado.
Y ya encontré una función similar a PutPixel :jumpie: , en GDI se llama SetPixel y su sintaxis es:
--- Código: Text ---COLORREF SetPixel( HDC hdc, // manipulador a contexto de dispositivo int X, // coordenada x del pixel int Y, // coordenada y del pixel COLORREF crColor // color del pixel );
Aún no la he probado (falta de tiempo), pero creo que funcionará :rolleyes:
--- Fin de la cita ---
Hola Geo:
Te doy un consejo: utiliza la funcion SetPixelV que es mas rapida ¿por que? porque no devuelve un valor COLORREF;
Si necesitas saber como dibujar con funciones independientes a dispositivos ( las funciones que tiene las letras DIB) dimelo y te respondere a la brevedad.
saludos.
inforsystem:
--- Cita de: "Diodo" --- La unica pega que he visto es cuando vuelve el foco al formulario principal, despues de seleccionar la imagen con el dialogo, las partes del formulario principal que tapaba el filedialog no se repintan y se quedan en negro, sera cuestion de hacerle un invalidate al form principal .... :hola:
--- Fin de la cita ---
Hola.
No se si utilizan Visual Basic, pero para los que utilizan VC++ puede que les suceda lo mismo, entonces, pueden colocarl el flag CS_SAVEBITS en la estructura WNDCLASSEX;
El sistema operativo guarda una copia, por eso, ten en cuenta el uso de memoria.
saludos.
inforsystem:
--- Cita de: "Danielo" --- solo encuentro cosas como LoadImage y LoadBitmap que por lo visto cargan el bitmap automagicamente y no a partir de una matriz de bits...
--- Fin de la cita ---
Hola:
Para visualizar bitmaps en un HDC con las funciones LoadBitmap, debes utilizar funciones como SelectObject y DeleteObject.
...
HBITMAP hBmp = LoadBitmap(...);
HOBJ hBmpOld = SelectObject(hdc, hbmp);
...
Pero recuerda eliminarlo despues para liberar memoria.
....
DeleteObject(hBmpOld);
...
o puedes usarlo asi:
...
DeleteObject(SelectObject(hdc,hBmp));
...
Saludos.
Geo:
--- Cita de: "inforsystem" --- Hola Geo:
Te doy un consejo: utiliza la funcion SetPixelV que es mas rapida ¿por que? porque no devuelve un valor COLORREF;
Si necesitas saber como dibujar con funciones independientes a dispositivos ( las funciones que tiene las letras DIB) dimelo y te respondere a la brevedad.
saludos.
--- Fin de la cita ---
Jeje, Danielo es quien está trabajando con la WinAPI, yo estoy con wxWidgets :P.
Lo que tengo:
* El programa está "terminado" (falta la "limpieza del código" y lo del archivo de información), abre cualquier bitmap y lo muestra en una ventana. Esto lo hice en Linux (Ubuntu).</li>
* En Windows, me encontré con problemas con la clase wxFFile, se supone que es un "wrapper" para el tipo FILE de C, la usé pues mi intención es aprender bien el manejo de wxWidgets. Entonces, cambié las lecturas con esa clase por fread, logrando que funcionara :smartass:. Ahora tengo problemas para mostrar caracteres acentuados (p. ej. Menú :P), ya no es parte del reto pero espero me echen una mano en los foros de wxWidgets :). (Ya veo que el desarrollo multiplataforma no es sencillo :alien:.</li>Bien, a más tardar en un par de días mando mi programa para Linux :D.
Saludos,
JJ (Geo).
JuanK:
--- Cita de: "inforsystem" ---
--- Cita de: "Diodo" --- La unica pega que he visto es cuando vuelve el foco al formulario principal, despues de seleccionar la imagen con el dialogo, las partes del formulario principal que tapaba el filedialog no se repintan y se quedan en negro, sera cuestion de hacerle un invalidate al form principal .... :hola:
--- Fin de la cita ---
Hola.
No se si utilizan Visual Basic, pero para los que utilizan VC++ puede que les suceda lo mismo, entonces, pueden colocarl el flag CS_SAVEBITS en la estructura WNDCLASSEX;
El sistema operativo guarda una copia, por eso, ten en cuenta el uso de memoria.
saludos.
--- Fin de la cita ---
No, Diodo y Yo hemos usado C#.NET, Danielo y Geo C++, Eugenio Enko ha usado Pascal ( Delphi).
Y tu... vas a participar?
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa