Una ayudita pliss

Iniciado por DarkMatrix, 21 Septiembre 2008, 04:54 AM

0 Miembros y 2 Visitantes están viendo este tema.

DarkMatrix

buenas a todos por aca espero que me puedan ayudar, veran tengo un proyecto en el cual quiero que a una imagen se le pueda colocar texto, en una Zona espesifica de la imagen, tambien que se le puedan montar otras imagenes encima o en alguna parte de la imagen, y que luego esa imagen se pueda guardar como una sola.

Aqui un ejemplo de mas o menos lo que se quiere:

http://rapidshare.com/files/147030576/yugioh_card_maker_1_0.zip.html

Claro no les pido un codigo fuente, solo ayuda para saber como puedo hacerlo Gracias por las respuestas que puedan aportar xD! ;)


Todo aquello que no se puede hacer, es lo que no intentamos hacer.
Projecto Ani-Dimension Digital Duel Masters (Juego de cartas masivo multijugador online hecho en Visual Basic 6.0)

Desing by DarkMatrix

BlackZeroX

#1
Como NO pides ejemplos de coigos mejor te voy al punto sin tanto rollo

Parala imagen:
   con PaintPicture  o con la api bitblt
      combinarlo con TransparentBlt  para transparencias un X color
Para texto:
   Api DrawText
The Dark Shadow is my passion.

demoniox12

Cita de: nike42 en 21 Septiembre 2008, 04:54 AM
buenas a todos por aca espero que me puedan ayudar, veran tengo un proyecto en el cual quiero que a una imagen se le pueda colocar texto, en una Zona espesifica de la imagen, tambien que se le puedan montar otras imagenes encima o en alguna parte de la imagen, y que luego esa imagen se pueda guardar como una sola.

Aqui un ejemplo de mas o menos lo que se quiere:

http://rapidshare.com/files/147030576/yugioh_card_maker_1_0.zip.html

Claro no les pido un codigo fuente, solo ayuda para saber como puedo hacerlo Gracias por las respuestas que puedan aportar xD! ;)



Toma.. este Source supongo que te va a servir.. lo hice para el laburo..

http://rapidshare.com/files/147180921/Marca_de_Agua.zip.html

salu2!
By Demoniox

DarkMatrix

Cita de: ░▒▓BlackZeroҖ▓▒░ en 21 Septiembre 2008, 09:30 AM
Como NO pides ejemplos de coigos mejor te voy al punto sin tanto rollo

Parala imagen:
   con PaintPicture  o con la api bitblt
      combinarlo con TransparentBlt  para transparencias un X color
Para texto:
   Api DrawText

bueno tampoco es que no le pido ejemplos, pero esque tampoco soy muy adentrado en la materia, si podrian poner algunos ejemplillos para poder guiarme xD!

Todo aquello que no se puede hacer, es lo que no intentamos hacer.
Projecto Ani-Dimension Digital Duel Masters (Juego de cartas masivo multijugador online hecho en Visual Basic 6.0)

Desing by DarkMatrix

BlackZeroX

PaintPicture
las demas estan ya posteadas me parece en este foro si no busca en la Api-Guide
The Dark Shadow is my passion.

DarkMatrix

muy bien ya se como usar el paint picture pero hay un problema, Paintpicture no me permite trabajar con archivos png, lo intente con esto : http://www.recursosvisualbasic.com.ar/htm/ocx-componentes-activex-dll/102-modulo-para-leer-png.htm pero no anda.

Cita de: ░▒▓BlackZeroҖ▓▒░ en 21 Septiembre 2008, 09:30 AM

   con PaintPicture  o con la api bitblt
      combinarlo con TransparentBlt  para transparencias un X color

Esta cuestion no la entiendo mucho y tampoco encuentro ejemplos, a ver si me echan una mano, solo me falta la parte de usar imagenes con transparencias y dibujar el texto, gracias por su ayuda

Salu2!

Todo aquello que no se puede hacer, es lo que no intentamos hacer.
Projecto Ani-Dimension Digital Duel Masters (Juego de cartas masivo multijugador online hecho en Visual Basic 6.0)

Desing by DarkMatrix

demoniox12

fijate mi programa.. utiliza PNG...

salu2!
By Demoniox

BlackZeroX

DrawText.

Código (vb) [Seleccionar]

Const DC_ACTIVE = &H1
Const DC_NOTACTIVE = &H2
Const DC_ICON = &H4
Const DC_TEXT = &H8
Const BDR_SUNKENOUTER = &H2
Const BDR_RAISEDINNER = &H4
Const EDGE_ETCHED = (BDR_SUNKENOUTER Or BDR_RAISEDINNER)
Const BF_BOTTOM = &H8
Const BF_LEFT = &H1
Const BF_RIGHT = &H4
Const BF_TOP = &H2
Const BF_RECT = (BF_LEFT Or BF_TOP Or BF_RIGHT Or BF_BOTTOM)
Const DFC_BUTTON = 4
Const DFC_POPUPMENU = 5            'Solo Win98/2000 !!
Const DFCS_BUTTON3STATE = &H10
Const DT_CENTER = &H1
Const DC_GRADIENT = &H20          'Solo Win98/2000 !!

Private Type RECT
   Left As Long
   Top As Long
   Right As Long
   Bottom As Long
End Type
Private Declare Function DrawText Lib "user32" Alias "DrawTextA" (ByVal hdc As Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long) As Long
Private Sub Form_Load()
AutoRedraw = True
Dim r As RECT
r.Top = 0
r.Left = 0
r.Bottom = 20
r.Right = 500
DrawText Me.hdc, "Holaaaaaaaaaa", Len("Holaaaaaaaaaa"), r, BF_RECT Or BF_TOP
End Sub


BitBlt

usa dos piture en el picture1 carga alguna imagen en el segundo no pogas nada
Código (vb) [Seleccionar]

Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Private Sub Form_Load()
Picture1.ScaleMode = 3
Picture2.ScaleMode = 3
Picture1.AutoRedraw = True
Picture2.AutoRedraw = True
r = BitBlt(Picture2.hdc, 0, 0, 100, 100, Picture1.hdc, 10, 10, vbSrcCopy)
End Sub


Transparect Blt (Sacado de la Api-Guide)

Código (vb) [Seleccionar]

'This project needs 2 pictureboxes
'Picturebox1 must contain a picture with a lot of white pixels (we're going to use white as transparent color)
Private Declare Function TransparentBlt Lib "msimg32.dll" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal crTransparent As Long) As Boolean
Private Sub Form_Load()
    'KPD-Team 1999
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    Picture1.AutoSize = True
    'API uses pixels
    Picture1.ScaleMode = vbPixels
    Picture2.ScaleMode = vbPixels
End Sub
Private Sub Picture2_Paint()
    'If we don't call DoEvents first, our transparent image will be completely wrong
    DoEvents
    TransparentBlt Picture2.hdc, 0, 0, Picture2.ScaleWidth, Picture2.ScaleHeight, Picture1.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, vbWhite
End Sub
The Dark Shadow is my passion.

BlackZeroX

#8

HDC a Picture

con respecto a los PNG seria cargarlo a el modulo y despues transformarlo a pictura o bitmap  ve esta funcion sacada de la Api-Guide

la funcion en si transforma de un Hdc a Picture ok' [como ejemplo poongo este codigo completo de la Api-Guide]
Código (vb) [Seleccionar]

Const RC_PALETTE As Long = &H100
Const SIZEPALETTE As Long = 104
Const RASTERCAPS As Long = 38
Private Type PALETTEENTRY
    peRed As Byte
    peGreen As Byte
    peBlue As Byte
    peFlags As Byte
End Type
Private Type LOGPALETTE
    palVersion As Integer
    palNumEntries As Integer
    palPalEntry(255) As PALETTEENTRY ' Enough for 256 colors
End Type
Private Type GUID
    Data1 As Long
    Data2 As Integer
    Data3 As Integer
    Data4(7) As Byte
End Type
Private Type PicBmp
    Size As Long
    Type As Long
    hBmp As Long
    hPal As Long
    Reserved As Long
End Type
Private Declare Function OleCreatePictureIndirect Lib "olepro32.dll" (PicDesc As PicBmp, RefIID As GUID, ByVal fPictureOwnsHandle As Long, IPic As IPicture) As Long
Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal iCapabilitiy As Long) As Long
Private Declare Function GetSystemPaletteEntries Lib "gdi32" (ByVal hdc As Long, ByVal wStartIndex As Long, ByVal wNumEntries As Long, lpPaletteEntries As PALETTEENTRY) As Long
Private Declare Function CreatePalette Lib "gdi32" (lpLogPalette As LOGPALETTE) As Long
Private Declare Function SelectPalette Lib "gdi32" (ByVal hdc As Long, ByVal hPalette As Long, ByVal bForceBackground As Long) As Long
Private Declare Function RealizePalette Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Function CreateBitmapPicture(ByVal hBmp As Long, ByVal hPal As Long) As Picture
    Dim R As Long, Pic As PicBmp, IPic As IPicture, IID_IDispatch As GUID

    'Fill GUID info
    With IID_IDispatch
        .Data1 = &H20400
        .Data4(0) = &HC0
        .Data4(7) = &H46
    End With

    'Fill picture info
    With Pic
        .Size = Len(Pic) ' Length of structure
        .Type = vbPicTypeBitmap ' Type of Picture (bitmap)
        .hBmp = hBmp ' Handle to bitmap
        .hPal = hPal ' Handle to palette (may be null)
    End With

    'Create the picture
    R = OleCreatePictureIndirect(Pic, IID_IDispatch, 1, IPic)

    'Return the new picture
    Set CreateBitmapPicture = IPic
End Function
Function hDCToPicture(ByVal hDCSrc As Long, ByVal LeftSrc As Long, ByVal TopSrc As Long, ByVal WidthSrc As Long, ByVal HeightSrc As Long) As Picture
    Dim hDCMemory As Long, hBmp As Long, hBmpPrev As Long, R As Long
    Dim hPal As Long, hPalPrev As Long, RasterCapsScrn As Long, HasPaletteScrn As Long
    Dim PaletteSizeScrn As Long, LogPal As LOGPALETTE

    'Create a compatible device context
    hDCMemory = CreateCompatibleDC(hDCSrc)
    'Create a compatible bitmap
    hBmp = CreateCompatibleBitmap(hDCSrc, WidthSrc, HeightSrc)
    'Select the compatible bitmap into our compatible device context
    hBmpPrev = SelectObject(hDCMemory, hBmp)

    'Raster capabilities?
    RasterCapsScrn = GetDeviceCaps(hDCSrc, RASTERCAPS) ' Raster
    'Does our picture use a palette?
    HasPaletteScrn = RasterCapsScrn And RC_PALETTE ' Palette
    'What's the size of that palette?
    PaletteSizeScrn = GetDeviceCaps(hDCSrc, SIZEPALETTE) ' Size of

    If HasPaletteScrn And (PaletteSizeScrn = 256) Then
        'Set the palette version
        LogPal.palVersion = &H300
        'Number of palette entries
        LogPal.palNumEntries = 256
        'Retrieve the system palette entries
        R = GetSystemPaletteEntries(hDCSrc, 0, 256, LogPal.palPalEntry(0))
        'Create the palette
        hPal = CreatePalette(LogPal)
        'Select the palette
        hPalPrev = SelectPalette(hDCMemory, hPal, 0)
        'Realize the palette
        R = RealizePalette(hDCMemory)
    End If

    'Copy the source image to our compatible device context
    R = BitBlt(hDCMemory, 0, 0, WidthSrc, HeightSrc, hDCSrc, LeftSrc, TopSrc, vbSrcCopy)

    'Restore the old bitmap
    hBmp = SelectObject(hDCMemory, hBmpPrev)

    If HasPaletteScrn And (PaletteSizeScrn = 256) Then
        'Select the palette
        hPal = SelectPalette(hDCMemory, hPalPrev, 0)
    End If

    'Delete our memory DC
    R = DeleteDC(hDCMemory)

    Set hDCToPicture = CreateBitmapPicture(hBmp, hPal)
End Function
Private Sub Form_Load()
    'KPD-Team 1999
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    'Create a picture object from the screen
    Set Me.Picture = hDCToPicture(GetDC(0), 0, 0, Screen.Width / Screen.TwipsPerPixelX, Screen.Height / Screen.TwipsPerPixelY)
End Sub


solo edita la linea siguiente y edita los datos requeridos

Código (vb) [Seleccionar]

    Set Picture2.Picture = hDCToPicture(Picture1.hdc, 0, 0, 100, 100)
[]/code[
The Dark Shadow is my passion.

andreina

[hola me gustaria q me ayudaran a resolver unos ejercicios con vectores en visual basic... los ejercicios son:
1. se tienen dos arreglos unidimensionales a y b de m elementos, partiendo de los dos arreglos, elaborar un algoritmo q forme tres nuevos arreglos. el primero con la suma de los elementos respectivos, el otro con el producto y el ultimo con la diferencia.
2. hacer un programa q permita realizar las siguintes operaciones:
a) cargar un vector
b) encontrar el mayor elemento del vector y su posicion
c) calcule el promedio de los elementos del vector y forme dos nuevos arreglos, uno con los elementos menores o iguales al promedio y otro con los superiores. imprima los dos nuevos arreglos
d) calcular e imprimir los numeros de datos repetidos en el vector
e) el numero de valores impares
f) en otro vector mostrar los elementos pares

le agradezco a quien me pueda  ayudar con los programas!!!