Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: SγиtαxEяяoя en 26 Mayo 2013, 08:39 am



Título: [Duda] Imagen en el Form
Publicado por: SγиtαxEяяoя en 26 Mayo 2013, 08:39 am
hola, intentando jugar con las propiedades del form...

logre hacer esto..

(http://i.imm.io/17l6v.png)

Pero me fijo en los bordes tan robustos que tiene la imagen .PNG

hay alguna forma de "pulir" los bordes.. para que queden finos

PD:La imagen esta en la mejor calidad... lo probe con otros fondos

(http://i.imm.io/17l6j.png)




Título: Re: [Duda] Imagen en el Form
Publicado por: Eleкtro en 26 Mayo 2013, 13:52 pm
Ese es el problema de usar un WindowsForm con transparencia y PNG's con transparencia...

Puedes perfeccionarlo con API's: [SOURCE] Splat (http://foro.elhacker.net/net/source_splat-t390371.0.html)

Pero yo personálmente no te recomiendo que sigas con este tema... deberías dejarlo para cuando aprendas un poco más.

Saludos


Título: Re: [Duda] Imagen en el Form
Publicado por: z3nth10n en 26 Mayo 2013, 14:52 pm
Yo también estoy con las transparencias... Yo uso:

Código:
Me.TransparencyKey = BackColor

Se supone que es ese el que tu usas?

Prueba a ver... Pero se supone que no va a hacer nada...  :-\



Es más, yo también tengo ese problema  :-(


Título: Re: [Duda] Imagen en el Form
Publicado por: SγиtαxEяяoя en 26 Mayo 2013, 17:24 pm
Se supone que lo que voy a tratar de hacer es

Quitar el formulario,

FormBorderStyle = None
y añado funciones de mover formulario desde la imagen


Título: Re: [Duda] Imagen en el Form
Publicado por: z3nth10n en 26 Mayo 2013, 17:29 pm
Se supone que lo que voy a tratar de hacer es

Quitar el formulario,

FormBorderStyle = None
y añado funciones de mover formulario desde la imagen

Yo justamente necesito ayuda con un WebBrowser cabrón, me podrías ayudar? xD  :silbar:
PD: Me refiero para mover el formulario desde el mismo.


Título: Re: [Duda] Imagen en el Form
Publicado por: SγиtαxEяяoя en 26 Mayo 2013, 17:32 pm
con este codigo, puedes mover el formulario sin la barra donde se ubican los "ControlBox e Icon"

FormBorderStyle = None

Código:
    Dim formPosition As Point
    Dim mouseAction As Boolean
    Private Sub Form_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs) Handles MyBase.MouseDown
        formPosition = New Point(Cursor.Position.X - Location.X, Cursor.Position.Y - Location.Y)
        mouseAction = True
    End Sub
    Private Sub Form_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) Handles MyBase.MouseMove
        If mouseAction = True Then
            Location = New Point(Cursor.Position.X - formPosition.X, Cursor.Position.Y - formPosition.Y)
        End If
    End Sub
    Private Sub Form_MouseUp(ByVal sender As Object, ByVal e As MouseEventArgs) Handles MyBase.MouseUp
        mouseAction = False
End Sub



Título: Re: [Duda] Imagen en el Form
Publicado por: z3nth10n en 26 Mayo 2013, 17:34 pm
El picture se llama MyBase?  :rolleyes:
PD: Soy bastante noob/newbie. xD



A ver, si nos entendemos, ese code es para solo el Form, yo necesito algo que me vaya con un WebBrowser...

Si es que estoy invadiendo un post... Ayudadme por el mio...  :-\


Título: Re: [Duda] Imagen en el Form
Publicado por: Eleкtro en 26 Mayo 2013, 18:02 pm
@Seazoux
MyBase = Me (más o menos)

http://msdn.microsoft.com/en-us/library/20fy88e0%28v=vs.80%29.aspx




@SyntaxError404

No está muy perfeccionado el código, ¿Que pasa si mantienes pulsado botón central o botón derecho sobre el form?, no creo que quieras moverlo con esos botones.

Además imagino que tendrás controles en el form, y también querrás mover el Form al mantener presionado click izquierdo sobre un picturebox, aquí tienes mi versión:

Código
  1. #Region " Move Form "
  2.  
  3.    ' [ Move Form ]
  4.    '
  5.    ' // By Elektro H@cker
  6.  
  7.    Public MoveForm As Boolean
  8.    Public MoveForm_Mouse_Position As Point
  9.  
  10.    Public Sub MoveForm_MouseDown(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles _
  11.        MyBase.MouseDown ' Add more handles here (Example: PictureBox1.MouseDown)
  12.  
  13.        If e.Button = MouseButtons.Left Then MoveForm = True : MoveForm_Mouse_Position = e.Location
  14.    End Sub
  15.  
  16.    Public Sub MoveForm_MouseMove(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles _
  17.        MyBase.MouseMove ' Add more handles here (Example: PictureBox1.MouseMove)
  18.  
  19.        If MoveForm Then Me.Location = Me.Location + e.Location - MoveForm_Mouse_Position
  20.    End Sub
  21.  
  22.    Public Sub MoveForm_MouseUp(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles _
  23.        MyBase.MouseUp ' Add more handles here (Example: PictureBox1.MouseUp)
  24.  
  25.        If e.Button = MouseButtons.Left Then MoveForm = False
  26.    End Sub
  27.  
  28. #End Region

PD: ¿Y si te miras mi librería de snippets? hay códigos para todo lo que has necesitado hasta ahora: http://foro.elhacker.net/net/libreria_de_snippets_posteen_aqui_sus_snippets-t378770.0.html


Título: Re: [Duda] Imagen en el Form
Publicado por: z3nth10n en 26 Mayo 2013, 18:11 pm
Pero ayúdame con mi topic no? xDDD



PD: Te recomiendo que uses sombras con Photoshop:

(http://i.imgur.com/CzFSa0Y.png)

Como puedes observar no hay ningún borde robusto...  :)


Título: Re: [Duda] Imagen en el Form
Publicado por: Eleкtro en 26 Mayo 2013, 18:33 pm
Pero ayúdame con mi topic no? xDDD

Es que casi todos tus problemas se basan en que no lees nada, nisiquiera los mensajes de error.

ya te he contestado,
saludos.


Título: Re: [Duda] Imagen en el Form
Publicado por: SγиtαxEяяoя en 26 Mayo 2013, 18:49 pm
Pero ayúdame con mi topic no? xDDD



PD: Te recomiendo que uses sombras con Photoshop:



Como puedes observar no hay ningún borde robusto...  :)

;) Claro que los hay... solo minimiza la ventana del visual y pon la imagen proyecto en el escritorio y mira ;)  >:D >:D


Título: Re: [Duda] Imagen en el Form
Publicado por: z3nth10n en 26 Mayo 2013, 19:24 pm
Es que casi todos tus problemas se basan en que no lees nada, nisiquiera los mensajes de error.

ya te he contestado,
saludos.

A ver, soy así, me da mucho palo leer, y si leo, luego me cuesta entenderlo, y tengo que leer como 100 veces la misma cosa para enterarme.



;) Claro que los hay... solo minimiza la ventana del visual y pon la imagen proyecto en el escritorio y mira ;)  >:D >:D

SU p**a MADRE, es verdad! xDDDDDDD
Pero que cojones XDXDXD


Título: Re: [Duda] Imagen en el Form
Publicado por: SγиtαxEяяoя en 26 Mayo 2013, 19:45 pm
SU p**a MADRE, es verdad! xDDDDDDD
Pero que cojones XDXDXD


Debemos de buscar la solucion, aunque navegando por hay me fije en que visual basic tiene como maximo 16 bits para la transpariencia de objetos

cuando lo normal son 256 bits


Título: Re: [Duda] Imagen en el Form
Publicado por: z3nth10n en 26 Mayo 2013, 19:47 pm
Esto servirá?

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=4518&lngWId=10

Ponemos links de lo que encontremos?  ;)


Título: Re: [Duda] Imagen en el Form
Publicado por: SγиtαxEяяoя en 26 Mayo 2013, 19:52 pm
Claro  ::) ::) ::)

Asi encontraremos la solucion para este problema ;)

Estoy buscando igual



Título: Re: [Duda] Imagen en el Form
Publicado por: Eleкtro en 26 Mayo 2013, 19:53 pm
No sé si la información que das es correcta, porque támpoco sé si dicha información se refiere a VB (VB5, VB6), o VB.NET.

cuando lo normal son 256 bits

Pero lo que si sé es que una imágen solo puede ser de hasta 32 bits por pixel, no 256. No te confundas.

Saludos



EDITO:

@Seazous & SyntaxError404
Dos soluciones para el tema transparencias en .NET.

1. - Descargar y leer el source del "Splat", la class frmsplash (No recuerdo si la llamé así), es una class llena de API's.

2. - Dejar WindowsForm y crear un proyecto WindowsPresentationForm (WPF)

Saludos


Título: Re: [Duda] Imagen en el Form
Publicado por: z3nth10n en 26 Mayo 2013, 19:56 pm
Yo creo, el link que pase es nuestra solución...

Lo que hace básicamente es tomar el fondo de lo que está detrás, y cuando se abre se abre todo correctamente, el único problema es que si cambia de ventana mientras que se abre, se va a ver bug...  :-\



PD: No leí tu último comentario...
No se que usar... Dame lo que piensas...  :P


Título: Re: [Duda] Imagen en el Form
Publicado por: Eleкtro en 26 Mayo 2013, 20:06 pm
PD: No leí tu último comentario...
No se que usar... Dame lo que piensas...  :P

Es que es un tema dificil lo del GDI y a mi tampoco se me da a la perfección que digamos (de ahí que no pudiese usar efectos fadein en imágenes png)

Pero no sé cual es el problema, ahora tienes 2 sources donde te muestran lo de la transparencia. Támpoco sé exáctamente lo que quieres hacer con las imágenes.

PD: Ese source que has posteado me sirve para implementar el fadein/fadeout para imágenes ICO/PNG en el Splat, que bien.



Título: Re: [Duda] Imagen en el Form
Publicado por: SγиtαxEяяoя en 26 Mayo 2013, 20:06 pm
Pero lo que si sé es que una imágen solo puede ser de hasta 32 bits por pixel, no 256. No te confundas.

http://es.wikipedia.org/wiki/Portable_Network_Graphics

PNG soporta 256 con la transparencia y sin pérdida de calidad. con apoyo de hasta 16 millones de colores, la transparencia alfa y aún así utiliza compresión sin pérdida. Sería el formato perfecto. Se puede utilizar tanto para fotografías siempre y cuando que no requieren animación. (PNG no admite animación como GIF)

Edito: PNG si soporta animacion usando Apng


Título: Re: [Duda] Imagen en el Form
Publicado por: z3nth10n en 26 Mayo 2013, 20:11 pm
PD: Ese source que has posteado me sirve para implementar el fadein/fadeout para imágenes ICO/PNG en el Splat, que bien.

Ya me debes una xD
Ahora me tienes que hacer el codigo, porque no consigo hacer que HtmlElementEventHandler y MouseEventArgs se lleven bien.  :silbar:

xDD


Título: Re: [Duda] Imagen en el Form
Publicado por: Eleкtro en 26 Mayo 2013, 20:11 pm
PNG soporta 256 con la transparencia y sin pérdida de calidad

La cantidad de colores (256) no es lo mismo que la cantidad de bits/pixel, aunque eso también es incorrecto, 256 colores es primitivo.

http://es.wikipedia.org/wiki/Bpp

Saludos!


Título: Re: [Duda] Imagen en el Form
Publicado por: Eleкtro en 26 Mayo 2013, 20:15 pm
no consigo hacer que HtmlElementEventHandler y MouseEventArgs se lleven bien.  :silbar:

que Spammer eres xD

Si yo lo que intento decirte es que te tienes que olvidar del MouseEventArgs, que no existe ese evento para un webbrowser, ya te puse una alternativa de como se hace con los eventos del "body"

saludos


Título: Re: [Duda] Imagen en el Form
Publicado por: z3nth10n en 26 Mayo 2013, 20:16 pm
Y porque os metéis en problemas de PNG, si el problema de verdad está en VS2012? xD



La alternativa esa es la del Teclado, que no haces que furule la F?

PD: Este topic está medio resuelto...
Así que... xD

Spameo un poco...

No hay ninguna forma de intercalar un panel invisble para poder arrastrar el form y a la vez que se vea el contenido de abajo? xD


Título: Re: [Duda] Imagen en el Form
Publicado por: SγиtαxEяяoя en 26 Mayo 2013, 20:19 pm
La cantidad de colores (256) no es lo mismo que la cantidad de bits/pixel, aunque eso también es incorrecto, 256 colores es primitivo.

http://es.wikipedia.org/wiki/Bpp

Saludos!

:O Entonces VB.NET cuanto es lo maximo de bits "colores" que recibe para la transparencia (para que deje de verse los bordes robustos y los muestre con la mejor calidad)


Título: Re: [Duda] Imagen en el Form
Publicado por: Eleкtro en 26 Mayo 2013, 20:26 pm
:O Entonces VB.NET cuanto es lo maximo de bits "colores" que recibe para la transparencia (para que deje de verse los bordes robustos y los muestre con la mejor calidad)

No soy un experto en gráficos, pero una aplicación se vé a la misma cantidad de bits que tengas configurado en tu pantalla (panel de control > configuración de pantalla > color), es decir, a 32 bits.

ya no se si estamos hablando de bpp o de cantidad de colores, pero la cantidad máxima posible de colores para un png son millones, 16 millones si no recuerdo mal,
si me preguntas si esa cantidad se reduce por alguna razón al mostrar un png en un WindowsForm, pues eso sincéramente no lo sé.

No sé a que te refieres con bordes robustos, no sé si estás hablando del form o de los bordes del png, postea una imágen del problema para salir de dudas.

saludos!


Título: Re: [Duda] Imagen en el Form
Publicado por: SγиtαxEяяoя en 26 Mayo 2013, 21:15 pm

postea una imágen del problema para salir de dudas.



A eso me refiero...

Cuando al Form le cambio las propiedades

BackColor = Cualquier color
PictureBox

Y pongo una imagen .PNG de alta resolución (http://i.imm.io/17oMf.png).. sus bordes se conservan con buena calidad

Ejemplo..

(http://i.imm.io/17p0e.png)


Pero cuando le cambio la propiedad del Form

BackColor = Window
TransparencyKey = Transparent
FormBorderStyle = None

El form queda asi

(http://i.imm.io/17p1S.png)

A lo que me quiero referir son a estas partes en blanco

(http://i.imm.io/17p2J.png)

Y mira este es un ejemplo desde el PhotoScape, como podes ver la imagen esta en su mejor calidad y sus bordes no se ven robustos

Ver imagen (http://i.imm.io/17p3z.png)


Título: Re: [Duda] Imagen en el Form
Publicado por: Eleкtro en 26 Mayo 2013, 21:28 pm
Arriba tienes un source posteado por Seazoux donde está la solución, como ya te dije no es algo tán simple y hay que usar apis.

Saludos


Título: Re: [Duda] Imagen en el Form
Publicado por: z3nth10n en 26 Mayo 2013, 22:30 pm
Syntax como haces que sea transparente la imagen? Yo lo hice, y se ve gris. En vez de transparencias...  :huh:


Título: Re: [Duda] Imagen en el Form
Publicado por: SγиtαxEяяoя en 26 Mayo 2013, 22:41 pm
Syntax como haces que sea transparente la imagen? Yo lo hice, y se ve gris. En vez de transparencias...  :huh:

El form tiene que tener estar propiedades

BackColor = Window
TransparencyKey = Transparent
FormBorderStyle = None


Título: Re: [Duda] Imagen en el Form
Publicado por: Eleкtro en 26 Mayo 2013, 22:58 pm
si usas un color conocido (window) cualquier color que use dicho color conocido se mostrará transparent, además dicho color puede cambiar según el theme de Aero que use el usuario, no uses colores conocidos.

Lo correcto es usar un color poco usado, y asegurarse que la imágen no contenga dicho color (hice una función para eso).

Código
  1. me.BackColor = Color.fuchsia
  2. me.TransparencyKey = me.BackColor
  3. me.FormBorderStyle = None

Saludos


Título: Re: [Duda] Imagen en el Form
Publicado por: SγиtαxEяяoя en 26 Mayo 2013, 23:12 pm

Código
  1. me.FormBorderStyle = None

Saludos


Solo una pequeña corrección
Código:
Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None

Edito: (http://i.imm.io/17pRe.png)


Título: Re: [Duda] Imagen en el Form
Publicado por: SγиtαxEяяoя en 27 Mayo 2013, 05:49 am
Navegando un poco por internet encontre esto...

Espero que Electro lo pueda analizar y ver como añadir botonces y demas cosas, porque yo no lo logre hacer desde el Form

Citar
Descarga el proyecto

http://rghost.net/46288727


Título: Re: [Duda] Imagen en el Form
Publicado por: z3nth10n en 27 Mayo 2013, 22:51 pm
(http://i.imgur.com/hnjQ0Tk.png)

Esto tiene algo que ver con el topic?  :silbar:
Como lo soluciono? :S



PD: Ya lo he resuelto, con un
Código
  1. Elemento.BackColor = Color.Transparent

Ya vale XD