Título: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: Belial & Grimoire en 3 Septiembre 2007, 02:33 am hola
estoy usando la clase Cjpeg para capturar la pantalla, pero tengo un problema.... cuando creo la imagen por primera vez, no tengo ningun problema pero cuando quiero crear otra ya no puedo... y si la elimino... se tarda demasiado en volver a crear otra captura... y cuando lo intente aumentando el tiempo... no se guarda bien y solo me llega la captura, y cuando la abro no hay nada... alguien sabe que puedo hacer, o alguien conoce otra forma de crear capturas de pantalla y que no haya tenido problemas... ya que tambien intente con keybd_event... pero la imagen que se crea pesa 2.50 MB ... y eso no me gusto mucho... espero me puedan ayudar gracias ;D Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: LeandroA en 3 Septiembre 2007, 03:25 am una forma mas rapida es guardandola con formato .png pero ya vas a depender de
GDI ++ si quieres te paso un modulo para guardar las imagenes en ese formato (pero tene en cuenta que la pc que lo ejecute deve tener gdi plus instalado , en xp ya viene por defecto) Saludos Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: HaDeS, - en 3 Septiembre 2007, 04:55 am Una combinacion entre keybd_event y el modulo CJpeg, apenas vine a conocer este modulo asi que no se mucho como se maneja, pero como le di al codigo quedo perfecto :P
Código El inconveniente que encontre en este modulo, es que se demora un buen rato convirtiendo el picture a una calidad menor, o igual segun el caso. Es todo, pruebalo y me decis si te funciono. Saludos ;) Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: Belial & Grimoire en 3 Septiembre 2007, 07:44 am hola
Código: LeandroA no sabia eso.. y si kieres colocar el modulo.. te lo agradeceria... siempre es bueno aprender algo nuevo... Código: HaDeS, - esta intersante el codigo que colocaste... voy a checarlo... pero tengo el problema que tu tambien tienes... el archivo se tarda mucho en volver a aparecer... lo unico que se me ocurre es que el programa detecte si el archivo esta listo... y cuando este listo... me mande un mensaje para luego descargarlo... el problema es que se escucha muy chafa para el programa... pero no se me ocurre otra cosa... por eso, si alguien conoce algun otro modo de capturar la pantalla y que sea mas eficiente... porfavor, diganme.. espero su respuesta gracias ;D Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: Porte en 3 Septiembre 2007, 07:58 am Una pregunta estupida, pero ya que no se crear un tema... quisiera preguntarles donde se guarda las capturas de pantallas. Un saludo. PORTE Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: HaDeS, - en 3 Septiembre 2007, 08:02 am El problema esta en que el modulo CJpeg, al llegar a esta parte: SampleHDC(Picture1.hDC, Picture1.ScaleWidth, Picture1.ScaleHeight)
Lo que hace en realidad es esto SampleHDC(Picture1.hDC, 1200, 800), Segun cada resolucion de pantalla, y en el modulo hay varios bucles recorriendo cada pixel del picture, asi que el trabajo se vuelve pesadisimo, y por eso demora tanto en crear. Con un procesador de 2.3ghz, y una resolucion de 1200 x 800, la imagen se me genero en 4.937 segundos, es mucho. Pienso que se puede estrechar la imagen con el mismo modulo,o ponerla a una resolucion mas pequeña, como por ejemplo 800 x 600, pero ahora estoy cansado :P. Mañana, digo, ahora mas tarde (por la tarde), retomo a ver y luego te cuento, eso si tengo tiempo. Mientras, ve mirando si se puede acomodar la imagen a una resolucion pequeña, asi yo creo que si podria dar. Es todo. Saludos ;) Porte: Si te fijas bien en mi codigo, hay una parte donde se indica la ruta del archivo de la imagen: Código
Si aplicas el codigo que te puse ahi, la imagen con la captura de pantalla se guardara en c:\prueba.jpg Saludos de nuevo :) Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: cobein en 3 Septiembre 2007, 08:04 am El tema es que para guardarla en formato jpg con codigo de visual es my lento, podrias usar GDI o DirectX pero no estan disponibles en todos los sistemas, algo que se me acurre que podrias hacer es escalar la imagen a un 75% o 50% esto va a redicir la calidad un poco y el tamano, y luego usar 7-zip o zlib para comprimirla.
7-zip lo podes llamar directamente usando el shell y tine muy buena compresion. O sino lo otro podria ser utilizando la tecnica que usan los compresores de video o mismo el gif animado, que seria basicamente mandar la primer imagen completa y de ahi en mas solamente mandar los cambios ,pero esto es un poco mas dificil. Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: Porte en 3 Septiembre 2007, 08:06 am No te entiendo lo del codigo... en c (disco local) no hay ninguna carpeta llamada prueva.jpg Perdonen por usurpar el post. :-[ :-[ Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: cobein en 3 Septiembre 2007, 08:11 am Una cosa hay una version un poco mas rapida de ese modulo...mmm Creo que se llama cIjpeg o algo por el estilo
Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: HaDeS, - en 3 Septiembre 2007, 08:22 am Bueno, estuve probando con los dos modulos, y aca estan las nuevas estadisticas:
Modulo CJpeg: Sin compilar: 4.391 Segundos Compilado: 0.953 Segundos Modulo CJpegI; Sin compilar: 3.891 Segundos Compilado: 0.813 Segundos Efectivamente Cobein tiene la razon, y el modulo CJpegI difiere al modulo CJpeg por unos 0.14 segundos. Pueden descargar el modulo desde http://planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=50351&lngWId=1 Saludos :D Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: HaDeS, - en 3 Septiembre 2007, 10:18 am Bueno aca esta el codigo mas rapido, no es lo mejor pero ahi va :P
Código En este es necesario, 1 picture, 1 image, y dos commandbutton. Pruebas y tiempos: Modulo CJpeg: Sin Compilar: 2.218 milisegundos Compilado: 0.5 milisegundos Modulo CJpegI: Sin Compilar: 1.906 milisegundos Compilado: 0.375 milisegundos Se puede notar la diferencia, ya que pasamos de una resolucion de 1200 x 800 pixeles, a una de 800 x 600. Saludos :) Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: Slaz en 3 Septiembre 2007, 14:31 pm En mi portatil viene incluida la tecla "Prt Sc" (print screen), la pulsas y luego te vas al paint o cualquier editor de imagenes y le das a pegar. Luego guardar como... y eliges formato :D en un plis plas <-- N00b Comment, but works --> :xD
Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: LeandroA en 3 Septiembre 2007, 19:41 pm Si lo que se quiere hacer es algo asi como un escritorio remoto, es decir enviar toma tras toma, la mejor y diria unica forma es tal como dice cobein, mandar primero la imagen entera y despues mandar las modificaciones que ayan, fijencen en como trabajan los Escritorios remotos profecionales , envian la primera toma(claro en distintas calidades y despues la van mejorando) , y luego parten la pantala en varios trosos iguales, y si alguno de esos trosos cambia los envia, entonces asi se acelera mucho mas la cosa. (si quieren podemos intentar hacer uno yo me engancho). claro esta no es nada facil.
Este es el ejemplo utilizando GDI Plus de capturar y guardar la imagen en formato .png En un formulario con un picture1 y un Command1 Código: Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long y en un modulo bas Código: 'Dieser Source stammt von http://www.activevb.de la velocidad es practicamente inotable, y el peso de la captura final es aproximadamente de 80.000 bytes un poco mas que la de jpg, pero con mayor calidad (casi sin perdidas) y mas velocidad Saludos Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: cobein en 3 Septiembre 2007, 21:25 pm Bueno les voy a contar una historia, todo esto de comprimir en jpg y mandar la imagen y todo lo hice hace bastante tiempo para un proyecto en el que estaba trabando, los resultados fueron que basicamente me aburri de intentar cosas sin ningun buen resultado y termine usando una linea de comandos.
Usando la clase para guardar el jpg, y mandando una imagen completa de la pantalla, una tras otra y en lan, no pude pasar de 1.5 o 2 seg por cuadro y la maquina servidor estaba a mil con el consumo de procesador. Teniendo en cuenta que algo optimo serian unos 24 FPS como para ver todo completamente fluido, los resultados que tube fueron una cagada. Tambien intente lo de mandar solamente los cambios, pero mis conocimientos eran muy basicos y eso me sobrepaso. Si quieren y si les interesa entre todos podemos hacerlo funcionar. Aca les dejo unas cosas que me parece habria que solucionar primero antes de poder hacerlo. 1- determinar en cuantos fragmentos hay que dividir la pantalla para obtener el mejor tiempo en la transferencia y la mejor compresion, supongo que fragmentos muy chicos no van a tener buena compresion por la poca cantidad de informacion. 2- encontrar la mejor manera de coprimir la imagen sin tener que guardarla en el disco. (con la clase cJpegI, se puede modificar y obtener los bytes directamente, pero dudo que sea lo mas rapido) 3- encontrar una manera rapida de poder comparar las imagenes para determinar si hay cambios, algo que me parece se puede hacer es comparar como un "ta-te-ti" o "tic-tac-toe" o como le llamen, en vez de comparar todos los pixeles, eso puede determinar cambios de mas de 1 pixel y aumentria la velocidad de manera considerable, o la otra idea que no se si es mejor es directamente comprimir los fragmentos y comparar los byte arrays que me parece va a funcionar mejor. Bueno si les interesa podemos hacerlo funcionar. Saludos Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: LeandroA en 4 Septiembre 2007, 04:53 am Perfecto,yo por mi parte voy a intentar comparar los cuadros, creo que en un principio para no complicar la cosa seria mejor tomar como referencia un monitor de 17 pulgadas que creo si no me equivoco deve ser lo mas estandar. por lo que voy a dividir este monitor en 8 partes el ancho y en 6 el alto, por lo tanto seria un total de 48 cuadros a comparar, una ves que tenga esto posteo el codigo.
Saludos PD: para comprimir creo que seria mejor usar un modulo de stos en lo que estuvimos ablando aca, lo de las lineas de comando no creo que sea buena idea por el tema que no sabriamos cuando la imagen fue comprimida ya que visual basic no recive retornos. Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: cobein en 4 Septiembre 2007, 05:17 am Con respecto a lo de la linea de comandos si se puede hacer un pipe al Stdio pero eria complicar mucho la cosa.
Bueno pense en toda esta cosa y algo que me parece habria que hacer para comparar los cuadros es usar Crypto API y algun hash MD5 o lo que sea de esa manera solo tendriamos que guardar como dijiste vos en este caso los 48 hash para compararlos despues con los nuevos y nos ahorrariamos un monton de consumo de memoria o el tema de escribir y leer del disco, aparte Crypto API es muy rapido y al obtener el hash podemos ver hasta 1 pixel de diferencia. Opiniones ideas? un saludo Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: LeandroA en 4 Septiembre 2007, 05:54 am No entiendo mucho como decis vos, pero ya casi lo tengo listo, no abria que guarad las imagenes para compararlas y es rapido, pero bueno un poco por falta de experiencia tengo que pintar cada cuadro en un picture para poder obtener los bits, que si obiamente tomara esto desde la pantalla misma seria un paso menos y por lo tanto menos procesador, pero bueno para arrancar va a tirar bien, dentro un rato lo termino
Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: cobein en 4 Septiembre 2007, 06:01 am Ok, voy a tratar de hacer lo que dije asi lo ven, la verdad soy muy malo explicando pero ahora veo si lo hago.
Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: cobein en 4 Septiembre 2007, 06:33 am Ok aca esta la prueba y aparentemente es bastante rapido mas de lo que pensaba, importante el ejemplo solo esta checkeando 1/4 de la pantalla asi que la velocidad posiblemente disminuya en 1/4 en fullscreen pero la verdad la velocidad es muy buena http://www.filefactory.com/mupc/8f999d/, antes de que digan cualquier cosa esta checkeando el cuarto superion izquierdo, asi que les sugiero poner la ventana de prueva en la derecha de la pantalla y arrastrar cualquier otra ventana en el rincon de prueba, ops no le puse nombre a los botones, El 1 es para arrancar y el 2 para frenar.
Bueno espero opiniones, tengan en cuenta que esto es de prueba y se puede mejorar muchisimo. Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: LeandroA en 4 Septiembre 2007, 07:11 am bien aca esta mi ejemplo
http://es.geocities.com/leandroascierto/Proyecto_Grupal.zip (http://es.geocities.com/leandroascierto/Proyecto_Grupal.zip) Al final la pantalla la dividi en 8 de ancho y 8 de alto En mi computador las modificaciones se producen sobre la hora donde hay un icono en el sistray que va cambiando y otro justo donde esta el check que cambia la comparacion la hace cada 1 segundo y recorre 64 cuadros (que serian 8 * 8) Que opinion tienen? Cobein estuve mirando un poco el ejemplo y masomenos ronda en algo parecido a lo mio, lo uncio que veo es que para comparar la matriz() utilizas md5 para convertira en string, yo aca lo hice mas sencillo, despues lo voy a seguir testeando aver si puedo sacar alguna mejora para lo que hice yo , o bien terminar el tuyo, o si vos ya tenes otra cosa ponela si vamos viendo que seria lo mejor Saludos Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: cobein en 4 Septiembre 2007, 07:30 am @ LeandroA, la verdad me da vergueza el ejemplo de prueba que subi cuando miro el tuyo heheheh.
Mira para que veas lo que te decia, en la funcion GetBitmapData "por lo menos en este monitor" me devuelve una cadena de 64010 de largo y si eso lo multiplicamos por 64 es = a mucho, por eso decia de usar el hash el hash es 16 caracteres de largo, es un paso mas pero es lo bastante rapido y me parece que vale la pena agregarlo. Entre los 2 me parece que vamos a sacar algo bueno, lo que yo haria: 1- agregar el MD5 2- sacar todos los 8 y ponerlos como 2 constantes para poder modificarlo mas adelante y ver que es lo mas rapido 3- deshacernos del picturebox. bueno si queres lo hago yo si queres hacelo vos, seria mejor que nos dividamos las tareas asi no hacemos lo mismo. Saludos Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: LeandroA en 4 Septiembre 2007, 08:03 am Hola,si si , tenes razón, hice una comparativa utilizando, la comprecion MD5 y es cierto es mucho mejor, prove lo siguiente, tome ambas formas con el proyecto Compilado , y primer proyecto sin md5 usaba 10.000 kB de memoria y con el md5 apenas 3.500, y el uso del CPU no parece cambiar en nada asi que si definitibamente esta mejor con MD5, Bueno dale vos entonces hace lo que dijiste antes sobre el picture y el md5 y despues mañana vemos que seguira
Saludos Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: cobein en 4 Septiembre 2007, 08:09 am @ LeandroA, a ver si me puedo explicar, estaba pensando esto, ahora por como estan los ejemplos de prueba en ningun momento mantenemos una copia completa de la pantalla y me parece que deberiamos hacerlo.
A ver decime que opinas, el escaneo se hace con un barrido de todos los sectores (8x8) no, ahora supongamos que estoy arrastrando una ventana, comienza el escaneo y encontramos un cambio en el cuadro (1,1) se mada o lo que sea, sigue el escaneo (2,1) encontramos otro cambio, pero que paso en el medio de esto, la ventana siguio moviendose, y entonces al enviar los dos nuevos cuadros , la nueva imagen se va a ver distorsionada. Bueno manan seguimos me tengo que ir a dormir Saludos. Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: LeandroA en 4 Septiembre 2007, 22:11 pm Hola si es lo que entiendo vos deicis enviar como primera toma la pantalla completa y cargar toda la matriz, y recien desde alli empezar a comparar la vuelta anterior?
Estuve biendo el tema del envio de las imagenes, me faltaria arreglar un par de cuentas matematicas. me gustaria que vieras como pienso que podria ser la forma de enviar las imagenes, lo que como te decia antes, todavía no caigo bien como redistribuir las imagenes del otro lado, pero no es dificil solo que tengo la cabeza un poco quemanda jejej. http://es.geocities.com/leandroascierto/Envio.zip aca solo tome el primer cuadro, fijate que use dos extructuras tipo Heders(Cabesera) Private Type ScreenRemote Width As String * 5 Height As String * 5 CellsNumeber As String * 3 End Type Private Type CuadroHeders Size As String * 5 CellsNumber As String * 3 Width As String * 4 Height As String * 4 FileType As String * 3 End Type El primero que envia es el ScreenRemote en donde da datos de el tamaño de la pantalla y las cantidad de celdas en el seugndo (CuadroHeders) se envia por cada imagen y aca va la informacion en que lugar deve pintar el cuadro, el tamaño del archivo, el ancho y alto de la imagen, y fileType lo puse por las dudas que se quiera espesificar el formato osea PNG o JPG, osea es masomenos para arrancar despues lo modificamos a como sea mejor yo use los modulos GDIPlus en mi parecer es lo mas combeniente, pero bueno lo vemos. El server es el que recive las imagenes y el cliente el que las envia, pero nose como quieras vos sino lo hacemos a la inversa, yo lo hice asi por ahora, por comodidad Saludos PD: hoy ya no voy a poder hacer mas ni voy a estar, porque tengo que ir a trabajar y vuelvo como a las 6 de la mañana asi que cualquier cosa dejame un mensage aca. Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: cobein en 4 Septiembre 2007, 23:07 pm Hola, si yo estoy trabajando ahora pero cuando vuelva leo con cuidado tu mensaje y te comento, anoche segui un poco y tengo algo mejor, con respecto a como guardar las imagenes hoy voy a hacer unas pruebas porque hay mas maneras de hacerlo.
Bueno mas tarde te comento. Saludos Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: cobein en 5 Septiembre 2007, 02:43 am @ LeandroA, mira puse todo junto, la parte de detectar los cabios y despues de probar con varios metodos diferentes llegue a 13 cuadros por segundo, solo para la comparacion, pero me parece que es bastante bueno, considerando que aca tengo 1280x800 y un Athlon 2800 que para esto me parece que es lo peor, mucha resolucion y poca velocidad :D, ahora voy a ver que pasa cuando trato de comprimir los cuadros. Con respecto al ejemplo que mandaste lo probe y funciona muy bien, posibemente haya que hacer algunos cambios en los headers pero por ahora para las pruevas van 10 puntos.
Bueno voy a ver que pasa al tratar de comprimir los cuadros y te subo el code. Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: LeandroA en 5 Septiembre 2007, 17:36 pm Hola Tambien una buena opcion es llevar la imagen a 16 colores (4bit) o a 256(8 bit) quizas no se vea tan lindo pero reduce la imagen a un valor muy importante yo estuve haciendo unas pruveas con el api GetDIBits256 lo que si los ejemplos que tengo guardan la imagen, tuviera que adaptarlo para que devuelva un stdpicture, y bien luego lo guarde como png en 4bit y digamos que la comparativa fuesta
El cuadro normal guardado en .png = 4.628 bytes El cuadro en 8bit guardado en .png = 2.224 ybytes El cuadro en 4bit guardado en .png = 758 bytes Creo que el cambio es interesante, despues decime como era la otra manera para guardar imagenes que me comentabas, y si ya tenes algo pasamelo Saludos Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: LeandroA en 5 Septiembre 2007, 18:55 pm Otra cosa a favor que estuve viendo las imagenes .PNG suelen tener una cabesera muy grande y esta es repetitiva por lo que no seria neseario enviar todo el archivo sino que se puede oviar esta y escrivirla del otro lado osea en el server
mira los archivos que guarde en 8bit tienen una cabesera de 887 bytes mas 12 que tienen al final tambien repetitivos e inesesarios, esto da un total de 999 bytes que ya no son neseario mandar, osea que si este cuadro pesaba 2.224 - 999 = 1225 bytes y en 4 bit tiene una cabesera de 167 + los 12 finales, osea un total de 179 bytes al pedo a lo que si el archivo pesaba 758 - 179 = 579 bytes yo creo que con ese tamaño nos iramos acercando a una buena velocidad de transmicion no? a comparacion de los 37.000 bytes que pesaba en formato .bmp cada cuadro Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: nhaalclkiemr en 5 Septiembre 2007, 22:37 pm Yo uso la clase cJPEG y me funciona muy bien, incluso con calidad 100 me parece muy raro que te ocupe tanto, seguro que lo estas haciendo bien. Prueva a cambiar la calidad tambien con la funcion SampleLines pienso k se llamaba, es k hace tiempo k no uso esa clase pero me funcionaba muy bien
Saludos ;) Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: cobein en 6 Septiembre 2007, 03:15 am @ LeandroA, hola estoy de vuelta, me quede sin conexión.
Bueno te cuento segui probando con diferentes funciones y reorganizando el codigo y pude aumentar la velocidad para la deteccion en casi un 30% pero ya no se me ocurre que mas hacer para mejorar eso, asi que despues mira el code y fijate a ver si ves algo mas que se pueda hacer. Tene en cuenta que cuando lo compilas la velocidad aumenta muchisimo. Con respecto a laimagenes probe el codigo que mandaste y funiona muy rapido, lo unico qu no me termina de convencer es que no funciona en todos los sistemas y el tema de tener que gusrdar en el disco. Tambien hice pruebas con la clase cJPEGi y la verdad no es tan rapida, pero por muy poco y algo bueno es que modifique una de las funciones de la y no hay necesidad de gurdar nada en el disco. Mas o menos en esta maquina y con el test compilado , haciendo la comparacion de la pantalla completa y generando todas las imagenes , con PNG me da casi 3 escaneadas por seg contra el de JPEG que da casi 2, asi que me parece que los 2 son lo bastante buenos, Hay una cosa que se me ocurrio, que es comprimir el fragmento en memoria si usar nada externo, pero no se ni cuanto tarda ni el size final, tengo que probarlo. Bueno aca te dejo el code y voy a intentar con la compresion a ver que pasa. http://www.filefactory.com/mupc/e3aa5a/ Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: LeandroA en 6 Septiembre 2007, 05:37 am Wau se complico un poco la cosa jejej, esta interesante, yo la verdad poco entendi, pero lo que mas creo que hay que intentar es reducir el tamaño de la imagen, yo no me preocuaria quizas tanto por la velocidad en que escanea o comprime la imagen ya que supongo que todo esto va a ser mucho mas veloz que lo que tarde en enviar la imagen.lo que tenes mucha razón es lo de utilizar GDIplus, pero creo que es la opcion con mejor calidad y mayor velociad, por lo de guardar la imagen en el disco con gdiplus es casi inevitable creo. en cambio con la clase cJPEGi veo que no.
la verdad esto se complica un poco para provar con un ordenador solo porque se hace un bucle, yo por ahora solo dispongo de uno si encuentro un amigo para ir provando voy a intentar hacer algunas otras pruevas y ver que resultados hay. me podes dar una pequeña orientacion que es lo que hacen estas clases clsCRC, clsCRC, cHiResTimer Saludos Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: cobein en 6 Septiembre 2007, 05:58 am Si lodel loop lo tengo ahi para ver como funciona nada mas me una buena idea de la velocidad a la que funciona todo.
La clase cHiResTimer es solamente para medir el intervalo de tiempo, lo unico que hace es tomar el tiempo que tarda en ejecutarce la funcion asi tengo una idea de la cantidad de escaneos que se hacen por segundo. clsCRC lo que hace es calcular un valor Long que es unico para cada byte array se usa por lo general para checkear la integridad de los archivos, pero aca lo uso para comparar las imagenes en reemplazo del MD5 por que la verdad es mucho mas rapido. cRDSC es la parte principal del codigo que se encarga de hacer las comparaciones y salvar las imagenes y solamente tiene un evento "FrameChanged" que pasa las coordenadas del fragmento el size y un byte array con la informacion del archivo. Estoy conforme con la velocidad que tiene, pero la verdad estaba preocupado por eso, por que la ultima vez que intente hacer esto ese fue uno de los problemas mas grandes. ahora creo que hay que decidir que formato usar para las imagenes y como manejar el tema de la transferencia. Título: Re: alguien sabe como puedo capturar la pantalla, mas rapido o mejor??? Publicado por: cobein en 6 Septiembre 2007, 06:01 am No te preocupes por como esta todo es solamente para probar cuando decidamos bien lo ponemos en orden al codigo.
pd: 8x8 parece que es ideal, probe y parece ser lo mas rapido ;) |