Espacio para programadores novatos o experimentados (o cualquiera que quiera aprender) en el lenguaje BASIC (o cualquier otro lenguaje de programación: C/C++, Java, PHP...) den a conocer sus nuevos programas, pidan ayuda, den información, etc...

Ver más
  • 1,548 Miembros
  • 711 Temas
  • 417 Seguidores
  • 0

Creé mi propio formato de mapa de bits

Todavía no me ocupe de ponerle extensión o demás detalles pero cree la función para cargar y guardar los archivos las funciones son las siguientes:

dijo:


Option Explicit

Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long
Private Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal crColor As Long) As Long

Public Sub GuardarImagen(Path As String, Picture As PictureBox)

Dim Line As String

Dim X, Y As Single

Dim PID As Long

Open App.Path & "imagen.tmp" For Output As #1

For Y = 0 To Picture.Height - 1 Step 1

For X = 0 To Picture.Width - 1 Step 1

Line = Line & GetPixel(Picture.hdc, X, Y) & "|"

Next

Print #1, Line

Line = ""

Next

Close #1

Call Shell(App.Path & "rar.exe a -y -p1281 -m5 -ep " & Chr(34) & Path & Chr(34) & " " & Chr(34) & App.Path & "imagen.tmp" & Chr(34))

End Sub

Public Sub CargarImagen(Path As String, Picture As PictureBox)

Dim Lines As String

Dim Line() As String

Dim X, Y As Single

Dim PID As Long

PID = Shell(App.Path & "rar.exe x -y -p1281 " & Chr(34) & Path & Chr(34) & " " & Chr(34) & App.Path & Chr(34))

While DetectarProceso(PID) = True

'Espera

Wend

DoEvents

Y = 0

Open App.Path & "imagen.tmp" For Input As #1

While Not EOF(1)

Line Input #1, Lines

Line = Split(Lines, "|"

For X = 0 To UBound(Line) - 1 Step 1

Call SetPixel(Picture.hdc, X, Y, Line(X))

Next

Y = Y + 1

Wend

Close #1

End Sub



Eso va en un módulo para poder usarlas. Lo siguiente que haré es ver si puedo adaptarlas para crear un formato de video y mi meta es hacer una dll que cargue recursos en tiempo de ejecución, me refiero a un archivo del cual un programa pueda extraer una imagen por ejemplo pero sin extraerla a un archivo externo, sino a una variable parecido a como funcionan los archivos .mpq que usa la empresa blizzard con el storm.dll en juegos como el Warcraft 3 o el Wow.
  • 0
  • 1Calificación
  • 1Seguidores
  • 150Visitas
  • 0Favoritos

3 respuestas

@MilangaConPapas dijo Hace más de 5 meses:

Muy interesante, está muy buena la idea. Igual, te falto definir DetectarProceso que debe ser algún procedimiento que no lo encuentro en el código.

Salu2 y +Bytes.

@sceik dijo Hace más de 3 meses:

No entiendo que hace podés ser más explícito... Es para cambiar de resolución ?? Lo que querés hacer es inyectar una aplicación o mejor dicho un programa y poder cambiarle de resolución?? Si es así para que ?? Se ve complicado el código.. jaaaa

Tienes que ser miembro para responder en este tema