Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-09-2007
fide fide is offline
Miembro
 
Registrado: oct 2006
Posts: 331
Poder: 18
fide Va por buen camino
Lightbulb Enviar una imagen por red de forma Optimizada

Hola amigos, el echo es que estoy desarrollando un programa que se encarga de enviar imágenes por la red hacia un servidor central. Es algo asi como un monitor de Red. y bueno, creo que seria magnifico enviar solo las partes que cambian de la imagen que se capturo por ultima vez.

Lo que necesito es algo asi como un algoritmo o algunas ideas de como puedo hacer esto. Para que los archivos que mando no seas tan pesados y no me colapsen la Red..

Gracias de antemano!!
Responder Con Cita
  #2  
Antiguo 16-09-2007
l30 l30 is offline
Miembro
 
Registrado: jun 2007
Posts: 36
Poder: 0
l30 Va por buen camino
Hola fide, hace un tiempo atrás me hizo falta hacer un detector de movimientos, por lo que tenia que comparar, dos imagines par ver si sufrían algún cambio allí te va parte del código. De lo otro que hablas es de los archivos que no sean tan pesado bueno en el otro post que pusiste te explico como llevar la imagen de .bmp que se llevaría 3megas a .jpg que en mi caso no pasa de los 20 kb pienso que quede resuelto tu problema, el codigo que te puse aquí le faltan algunas variables por declarar que pienso que no haga falta ponerlas, de todas manera si tienes problemas me dices. NO te escribo el código para mandar la foto por la red porque parece que ya lo tienes echo, si te hace falta dímelo también.
Código Delphi [-]
 uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls, ExtCtrls, Clipbrd, ComCtrls, shellapi, IdHTTP, IdSMTP, IdMessage,
    Sockets;
   
  //**************************************
    
  var
    error : int64;
    i, j : integer;
    hayMovimiento : boolean;
  begin
    if idResultado <> 0 then
    begin
      try
        //capturamos la imagen actual
        SendMessage(idResultado, WM_CAP_EDIT_COPY, 0, 0);
        imagenActual.Assign(imagenAnterior);
        //la imagen anterior está guardada en el portapapeles, la obtenemos
        imagenAnterior.LoadFromClipBoardFormat(cf_BitMap,
            ClipBoard.GetAsHandle(cf_Bitmap), 0);
        error := 0;
        //recorremos todos los píxeles de la imagen actual
        for i := 0 to imagenActual.Width do
        begin
          for j:= 0 to imagenActual.Height do
          begin
            //comparamos el pixel de la imagen actual con el correspondiente
            //a la imagen anterior
            error := error + abs(imagenActual.Canvas.Pixels[i, j] -
                imagenAnterior.Canvas.Pixels[i, j]);
          end;
        end;
        //mostramos el porcentaje de error
        txtError.Text := FloatToStr(trunc(error / 20000000)/100);
   
        
      except
        bDetenerClick(Self);
        raise;
      end;
      hayMovimiento := tbSensibilidad.Position < StrToFloat(txtError.Text);
      if (hayMovimiento and Capturar) then
      begin
        imagenAnterior.SaveToFile(ExtractFilePath(txtUbicacionImg.Text) +
            IntToStr(Contador) + ExtractFileName(txtUbicacionImg.Text));
        imagenActual.SaveToFile(ExtractFilePath(txtUbicacionImg.Text) +
            IntToStr(Contador + 1) + ExtractFileName(txtUbicacionImg.Text));
        Contador := Contador + 2;
      end;
      if hayMovimiento then
         begin
           txtError.Color := clRed;
           TcpClient1.Active:= true;
           TcpClient1.Active:= false;
   
         end  
      else
        txtError.Color := clWhite;
    end
    else
    begin
      bDetenerClick(Self);
    end;
  end;
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
enviar imagen a excel Ester Servers 1 31-01-2005 16:56:52
Como muestro una Imagen en mi forma Principal!! Ricsato OOP 8 11-09-2004 02:17:39
como adaptar un for a la forma de una imagen JefeNet Gráficos 4 10-09-2004 20:38:44
Hacer un Splash con forma de una imagen rjsitruiz Gráficos 6 09-07-2004 11:28:21
Enviar imagen o archivo por socket DarkByte Internet 5 11-09-2003 15:16:16


La franja horaria es GMT +2. Ahora son las 05:32:33.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi