Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-03-2025
ralf1987 ralf1987 is offline
Registrado
 
Registrado: mar 2025
Posts: 2
Poder: 0
ralf1987 Va por buen camino
error #53 jpg android

Buen día.
el problema se da cuando intento abrir la imagen capturada desde un celular y la quiero mostrar en otra aplicación.


con este codigo lo cargo al servidor ftp
Código Delphi [-]
 
var FileName: string;
 ms: TMemoryStream; 
Surf: TBitmapSurface; 
JpgQuality : TBitmapCodecSaveParams; 
begin ms := TMemoryStream.Create; 
try JpgQuality.Quality := 75;
 Image1.Bitmap.Assign(Image);
 try
 Surf := TBitmapSurface.Create;
 try
 Surf.Assign(image);
 if not TBitmapCodecManager.SaveToStream(MS, Surf, '.jpg', @JpgQuality)
 then
 raise EBitmapSavingFailed.Create('Error guardando imagen');
 finally 
Surf.Free; 
end;
 ms.Position := 0;
// ms.SaveToStream(FStream);
 FTP.Host := 'direccion'; 
FTP.Username := 'fer';
 FTP.Password := '**********';
 FTP.Port := 33265;
 FTP.Passive := false;
 FTP.ConnectTimeout := 100;
 FTP.Connect(); 
ms.Position := 0;
 FTP.Put(ms, nombrefoto.Text + '.jpg');
 finally
 ms.Free;
 end;
 finally
 FTP.Disconnect;
 end;


y con este codigo intento mostrarlo en la otra aplicacion

Código Delphi [-]
 procedure LoadURLImage(Image: TImage; URL: String); 
var 
TempName: String; 
begin TempName := 'temp' + ExtractFileExt(URL); 
URLDownloadToFile(nil, PCHAR(URL), PCHAR(TempName), 0, nil);
 if FileExists(TempName) = true then begin Image.Picture.LoadFromFile(TempName);
 end else begin Image.Picture.LoadFromFile('C:\IMA\NO.JPG'); end; DeleteFile(TempName); application.ProcessMessages; end;


procedure TFOTOVEHICULOS.btmostarClick(Sender: TObject);
 begin LoadURLImage(Image1,'direccion/380.jpg'); end;


pero al momento de ejecutar la accion solo dice jpeg error #53
la imagen se guarda correctamente en el servidor pero no se muestra


gracias por su ayuda
Responder Con Cita
  #2  
Antiguo 14-03-2025
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.874
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
He visto que usas FTP.
Revisa el tipo de transferencia FTP que estás utilizando. Si no estás utilizando transferencia "binaria" puedes ser que el fichero se altere.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 14-03-2025
ralf1987 ralf1987 is offline
Registrado
 
Registrado: mar 2025
Posts: 2
Poder: 0
ralf1987 Va por buen camino
Thumbs up

Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
He visto que usas FTP.
Revisa el tipo de transferencia FTP que estás utilizando. Si no estás utilizando transferencia "binaria" puedes ser que el fichero se altere.

Gracias por la información.


de alguna manera es cierto, pero lo tengo configurado como binario.


Pero la foto por mas que le indique que fuera jpg, lo guardo con formato png, por lo tanto al intentar cargar un jpg en el timage se generaba el error por la codificación del archivo.
Al final se resolvió con un código de esta persona [Chris] no puedo poner url
club delphi com foros showthread t=80857 esta es la dirección del código que utilice excelente solución.
Código Delphi [-]
  
 Function gclas(Source:TStream):TGraphicClass; 
 var
 FStreamHeader : TStringStream;
  StartPosition : Int64; 
 CONST PNGFILE_HEADER = '‰PNG';  
BMPFILE_HEADER = 'BM';  
JPGFILE_HEADER = 'ÿØÿà'; 
 Begin 
 try  
 StartPosition := Source.Position; 
 IF Source.Size > 0 Then
  Source.Position := 0 
 else 
 // Stream vacío  
Raise Exception.Create('El stream no tiene datos'); 
 FStreamHeader := TStringStream.Create('');
  with FStreamHeader do    
 begin 
        CopyFrom(Source,512);  // Copiamos el header del Stream  
if pos(PNGFILE_HEADER,DataString) > 0     Then     
  Result := TPNGObject 
 else 
 if pos(BMPFILE_HEADER,DataString) > 0 Then  
     Result := TBitmap 
 else 
 if pos(JPGFILE_HEADER,DataString) > 0 Then      
 Result := TJPEGImage  
else  
Result := TGraphic; // no quiero producir una excepción a este nivel 
 end; 
 finally  
Source.Position := StartPosition;
  end; 
  end;
 procedure TFOTOVEHICULOS.verfotosClick (sender)
  var  ms: TmemoryStream;
  httpCli: TIdHTTP;  
url: string;
  I,ATOP: Integer;
  imgPath: string;
  image1: TImage;
  BTE:TButton; 
 begin 
 atop:=0; 
 //consulta sql lista fotos  
while not listafotos.Eof do  
begin 
 httpCli := TIdHTTP.Create(nil);
  ms := TMemoryStream.Create(); 
 url := 'direccion'+ nombrefoto +'.jpg';  
httpCli.Get(url,ms);
  ms.Position := 0; 
 gclas(ms);  
Application.ProcessMessages;  
Image1 := TImage.Create(self);
  Image1.Height := 250; 
 Image1.Width := 250; 
 Image1.Top := atop; 
 BTE:=TButton.Create(NIL); 
 BTE.Top:=ATOP+255;
  BTE.Height:=25;  
BTE.Width:=83; 
 BTE.Parent:=ScrollBox1; 
 BTE.Name:='bt_'+NOMBREFOTO; 
 BTE.OnClick:=ELIMINARI; 
 Inc(atop,280);
  Image1.Left := 0;
  image1.Parent:=ScrollBox1 ;
  image1.Name:='IM_'+NOMBREFOTO);
  image1.Stretch:=True; 
 image1.OnDblClick:=ABRIRIMAGEN; 
 image1.Picture.LoadFromStream(ms); 
 ms.free; 
 httpCli.free; 
 listafotos.Next; 
 end 
 end;

Última edición por Casimiro Notevi fecha: 15-03-2025 a las 09:29:25. Razón: error en etiqueta
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Error con mi GPS en Android 12 bennett.mtz Delphi para la web 1 23-07-2024 16:35:30
DEPLOY ANDROID 64 BITS SOLUCIÓN A [PAClient Error] Error: E6408 Y SIMILARES dani36652 Desarrollo en Delphi para Android 5 31-01-2020 22:11:37
Stream read error en Android Yulexis Desarrollo en Delphi para Android 10 19-07-2018 22:42:45
Android error epolanco Desarrollo en Delphi para Android 6 26-06-2018 23:11:04
Error en la plataforma android Javier13 Desarrollo en Delphi para Android 6 12-07-2017 21:01:05


La franja horaria es GMT +2. Ahora son las 16:53:15.


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