elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Mensajes
Páginas: 1 2 3 [4] 5 6
31  Programación / Programación Visual Basic / Por que Un ListBox con mas de 32767 items no funciona en: 30 Agosto 2015, 17:29 pm
Hola a todos:

Tengo un problema que me desconcierta, tengo este simple código, para quitar todos los Items seleccionados, el ListBox tiene MultiSelect = 2 - Extended:

Código:
Private Sub NoSeleccion()
    Dim i As Long
    Ocupado = True
    For i = 0 To List2.ListCount - 1
       List2.Selected(i) = False
    Next
    Ocupado = False
End Sub

Pues mi sorpresa es que List2 después de llenarlo tiene 57647 items y este bucle For, simplemente no funciona por que List2.ListCount tiene un valor de -45.
Y además List2.Listindex a partir de 32768 su valor, en lugar de 32769 tiene un valor de -32767.
Por lo que deduzco que el puntero trabaja como Integer + - 32767, he buscado información sobre este tema pero no encuentro nada.

Y entonces que se puede hacer con ListBox que almacenen mas de 32767 items.

Hay alguna forma de solucionar esto, se puede manejar este ListBox mediante SendMessage?

Agradecería cualquier ayuda por que no salgo de mi asombro.

Un saludo.
32  Programación / Programación Visual Basic / Re: Salvar JPG con mucho menos peso sin perder calidad en: 18 Junio 2015, 21:46 pm
Hola okik:

No hay nada que perdonar, te agradezco una vez más tu ayuda y aportes.
Citar
si no quieres depender de mspaint, puedes usar las funciones GDI que se encuentran el gdi32.dll de windows

A mi no me importa depender de mspaint, me es muy cómodo utilizarlo ya que me resuelve el objetivo de la aplicación, sin tener que complicarme en escribir y probar código, ya que solo lo utilizo cuando saco fotos y las almaceno en el HD con el mínimo peso posible, y esto lo hace perfecto la aplicación que ya la doy por terminada.
No obstante, tu aporte de código y el de otros posibles usuarios del foro, son importantes para aprender cuestiones que no se y quizás nunca utilice, pero el saber no ocupa lugar, y los guardo en mi colección para posibles usos futuros.
No creo que se pueda mejorar, ni siquiera igualar, el algoritmo de compresión de mspaint, a no ser que el GDI tenga una función especifica para salvar a JPG.

Por que el mspaint de Win 7 y posteriores, tiene mas herramientas, y sigue siendo muy básico, pero el algoritmo no tiene nada que ver con el mspaint de Win XP, no altera nada el peso, por eso no me sirve.
Si esta aplicación fuera solo para mí, que tengo Win XP y seguiré con el siempre, por que odio Win 7, Win 8, etc, no hubiera modificado el mspaint, pero tengo amigos y familiares que todos tienen Win 7 u 8.1, y la aplicación no funcionaría. 

Voy a probar tu código y te cuento.

Saludos. 
33  Programación / Programación Visual Basic / Re: Salvar JPG con mucho menos peso sin perder calidad en: 14 Junio 2015, 12:16 pm
Gracias de nuevo.
Lo probaré para comparar los resultados a nivel de calidad y resolución, pero la diferencia de tiempo de conversión es enorme.

He hecho la conversión de una carpeta que tiene 86 imágenes del tamaño de la que te puse en el link, de 5184x3456 a 72 ppp.
Con mi sistema tarda 04:44:04 minutos en convertir las 86 imágenes.

Con tu sistema, tomando como promedio 45 seg/imagen, tardaría 64:50:00 minutos, o sea aproximadamente una hora, contra 4.5 minutos, 14.3

veces mas lento, y además según dices la imagen que te subí tiene 20 Kb mas que la misma convertida con mi sistema, mira la captura, le he

agregado un medidor de tiempo al programa.

Pero además el hecho de utilizar msPaint, tiene la ventaja de que el usuario esta viendo cada imagen que se esta convirtiendo, y cuanto

reduce el peso, en tiempo real.
Pero me gustaría saber como poder ejecutar al principio, mspaint con un tamaño de ventana pequeño, como la captura que subo.


subir fotos gratis


subir imagenes gratis

Saludos.
34  Programación / Programación Visual Basic / Re: Salvar JPG con mucho menos peso sin perder calidad en: 13 Junio 2015, 21:24 pm
Hola Neocortex:

Gracias por tu respuesta una vez más.
Veo que el código está en C++, y yo hace 40 años que no he vuelto a programar en C++, en aquella época no había Visual C, solo C++ de Borland, en puro MSDOS.

Y me resulta bastante difícil traducir este código a VB6, que es el lenguaje que utilizo para las aplicaciones que hago actualmente para mis "apaños" y por hobby.
Si pudieras traducirme el código a VB6 te lo agradecería.

Te pongo el link para que tengas 2 imágenes de las que he convertido, se llaman:
'O_MG_2356.JPG' esta es la original pesa 8071,2 Kb , y 'C_MG_2356.JPG' esta es la convertida y pesa 1235,2 Kb, un 84,7 % menos, la puedes ver con Photoshop u otro soft con el Zoom que quieras y no las puedes distinguir.
Y el tiempo que tarda con mi sistema y mspaint es 4 seg, por que hago una espera de 3 segundos por precaución y dar le tiempo a que cargue la imagen, para salvarla después.

https://dl.dropboxusercontent.com/u/51073224/Imagenes.rar

Un saludo
35  Programación / Programación Visual Basic / Re: Salvar JPG con mucho menos peso sin perder calidad en: 13 Junio 2015, 03:19 am
Hola Neocortex:

Efectivamente lo que quiero es como dices, me extrañaba tu respuesta si habías seguido el post, o es que yo no me he explicado bien.

Yo como te comenté, ya tengo el programa funcionando empleando msPaint, pero si me gustaría poder hacerlo sin mspaint.

Veo que consigues, en la primera imagen de tu programa, una tasa de reducción del 89% en una imagen de 1920x1080, y aunque no puedo apreciar bien en tu captura detalles ampliados, parece que a simple vista no pierde calidad apreciable.

Pero no se que resolución en ppp (puntos por pulgada) tiene esa imagen.

Yo tengo cientos de imágenes muy grandes, 5184x3456 de una cámara Cannon EOS 600D 16 Mpix pero es de 72 ppp, que demuestra lo equivocada que esta la mayoría de la gente, que cree que una cámara de 16 Mpix tiene mejor calidad que una de 3.5 Mpix Cannon IXUS V3 de 180 ppp (yo tengo las dos).
Pues no... los Mpix solo significan el tamaño máximo de la imagen, y los ppp son la calidad (resolución) de la imagen.
Por que 72 ppp son 5184 pixels en una pulgada cuadrada, o sea en un cuadrado de 25.4x25.4 mm.
Y 180 ppp son 32400 pixels en la misma pulgada cuadrada, o sea un 160% mas de resolución.

Si no te importa compartir conmigo ese algoritmo, te lo agradecería mucho.

Y de todas formas gracias por tu respuesta, y no tengo nada que disculparte, solo agradecerte la información.

No se si has visto el vídeo que subí a YouTube, si lo quieres ver es este:

https://www.youtube.com/watch?v=BkmX5sx_bGw
 
Saludos.   

 
36  Programación / Programación Visual Basic / Re: Salvar JPG con mucho menos peso sin perder calidad en: 12 Junio 2015, 01:26 am
Hola:

Citar
Yo recuerdo que para una clase hice un compresor de imagenes siguiendo más o menos la lógica de compresión del jpg, hay distintas compresiones, las que tienen pérdidas y las que no, para la 2da no importa cuantas veces lo guardes, va llegar a un tope y no se va comprimir más,

Todo esto ya lo se desde hace muchos años.

Citar
lo que tu visualizaste con el mspaint fue que se "volvió" a comprimir con jpg a saber con que tasa de compresión...

Pues claro, eso es el propósito para reducir el peso de los archivos y no se ni me importa la tasa de conversión que utiliza msPaint, solo me interesa el resultado que es el que ya he explicado muchas veces (conseguir reducir el peso de los archivos sin perder calidad ni resolución a efectos del ojo humano, incluso con Zoom elevados), pero creo que no has entendido lo que pretendía hacer y que ya lo he conseguido al 100% con la utilidad que he programado, lo he explicado 3 o 4 veces en este post.

Gracias por tu respuesta.

Saludos.
37  Programación / Programación Visual Basic / Re: Salvar JPG con mucho menos peso sin perder calidad en: 3 Junio 2015, 01:39 am
Citar
Prueba a convertir una imagen con un gran cielo azul o algo así e imágenes que no sean de gran calidad, seguro que aprecias alguna imperfección que antes no estaba.

Eso ya lo he hecho, y muchas mas pruebas con todo tipo de imágenes, y analizándolas luego en Photoshop, no hay pérdida perceptible al ojo humano, pero realmente es evidente que hay una pérdida respecto al original, pero el algoritmo de compresión, se basa principalmente en la poca sensibilidad del ojo humano a los cambios de color (crominancia), y a la alta sensibilidad a los cambios de brillo (luminancia) y así consigue comprimir mucho el factor crominancia, que es lo que mas información y peso en bytes consume.

Por que no te descargas el programa y haces pruebas con imágenes tuyas y lo ves por ti mismo.

Las imágenes de poca calidad y poco peso, no merece la pena convertirlas, aunque incluso imágenes que tengo de solo 12-15 Kb también disminuyen en peso un promedio del 15-30 %.

Realmente las funciones GDI, de momento no me interesan, por que el único propósito de esta aplicación es para reducir el tamaño que ocupan en el HD, cuando tienes cientos de imágenes como es mi caso.

Yo aparte de programación por hobby, hago mucho diseño gráfico, con Corel, Photoshop y 3Dmax, y en 3Dmax con muchas texturas el consumo de RAM se dispara, y si ahorras un 80 % en peso, ganas horas a la hora de renderizar.

Un saludo.
38  Programación / Programación Visual Basic / Re: Salvar JPG con mucho menos peso sin perder calidad en: 29 Mayo 2015, 20:34 pm
Hola okik:

Interesante programa, realmente es muy completo, y me puede ser útil para algunas cosas, aunque cuando quiero manipular imágenes utilizo Photoshop que evidentemente es lo más profesional que existe.

Pero para mi propósito que es simplemente conseguir el peso mínimo posible de un archivo JPG, conservando todas las propiedades del original, y me refiero a todas, EXIF, resolución en ppp, perfil de color, tamaño, etc, ninguno de los que he probado lo hacen es mas, hacen lo contrario, incluido este, aumentan el peso del archivo.

He probado con una imagen que el original pesa 1.4 Mb.
Con Xnview, aumenta el peso de 1.4 Mb a 1.94 Mb un 35 % mas.

Mira la captura.

Con mi sistema y Paint, disminuye de 1.4 Mb a 0.376 Mb, un 73,8 % menos.
La diferencia es abismal.

Evidentemente no puedo saber si existe algún programa, de los cientos que hay, que pudiera mejorar el resultado de Paint, pero no creo que exista ese programa.

Lo he repetido en este post varias veces, aunque no creo que nadie excepto Microsoft sepa por que ocurre "este milagro".

Pero muchas gracias otra vez por tu ayuda.

Un saludo.


sube fotos
39  Programación / Programación Visual Basic / Re: Salvar JPG con mucho menos peso sin perder calidad en: 28 Mayo 2015, 02:19 am
Hola okik:

Si tienes razón, si esta dentro de un bucle Do/Loop, con un contador hasta 50000, como en tu ejemplo de código, si lo lee, pero yo utilizo el código de 'Arratrarventana', que me dio el otro usuario de otro foro que mencioné, y ese siempre lo consigue por que lo busca así:
Si hay titulo se intenta con el y FindWindow
Si no hay titulo tiene que haber exe
Si no se encuentra se intenta ejecutar
Y de esta forma siempre lo consigue, luego hace el proceso de Drag&Drop en memoria, esto es fundamental para mí, por que carga todos los JPG en el mismo SDPaint abierto con el primer JPG, y se ahorra tener que repetir el proceso de abrir SDPaint y leer el hWnd y esperar 2 segundos en cada archivo.

Mañana lo probaré en Win 7 x32 y x64, pero creo que funcionará bien, y con este código no necesito la clase del Paint de Win 7, por que con ese Paint no disminuye nada el peso, lo deja como está, por eso tengo que utilizar el Paint de XP.

Para XP, no necesitaría un Paint modificado con un editor hexadecimal, pero tengo amigos que les pasaré la aplicación, que tienen Win 7, S.O. que odio profundamente.

Ten en cuenta que yo he convertido carpetas enteras donde había 100 o 200 JPG's.

Un saludo.  
40  Programación / Programación Visual Basic / Re: Salvar JPG con mucho menos peso sin perder calidad en: 26 Mayo 2015, 14:28 pm
Hola a todos:

SI, pero gracias a vuestra ayuda.

Gracias y un saludo.
Páginas: 1 2 3 [4] 5 6
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines