Ver Mensaje Individual
  #3  
Antiguo 14-03-2014
Avatar de jscubillos5
jscubillos5 jscubillos5 is offline
Miembro
NULL
 
Registrado: jul 2013
Ubicación: Bogotá
Posts: 44
Reputación: 0
jscubillos5 Va por buen camino
Unhappy Gracias

Hola Neftali, muchísimas gracias por tu ayuda, pero esto no es específicamente lo que necesito, he estado investigando, y recopilando información y la forma más fácil de enviar imágenes por servicios web, es tomar la parte binaria de la imagen y transformarla a texto, ene ste caso estoy intentando hacer un demo, para lograrlo y actualmente tengo esto:

Tengo un formulario, en el cual solo tengo un control de imagen, un botón y un dialogo, en ele evento ONCLICK del boton tengo:

Código Delphi [-]
procedure TForm1.ButtonTransformarImagenEnCorrienteClick(Sender: TObject);
var
  CorrienteArchivo: TFileStream;
  CorrienteEntexto: String;
begin
  // Si se ejecuta el dialogo
  if OpenDialogUPrincipal.Execute then
  begin
    try
      // Le asigno a la corriente el archivo abierto
      CorrienteArchivo:= TFileStream.Create(OpenDialogUPrincipal.FileName, fmOpenRead);
      try
        // Muestro la imagen en el control
        ImageControlUPrincipal.Bitmap.LoadFromStream(CorrienteArchivo);
        // Convierto mi corriente en texto
        CorrienteEntexto:= DeCorrienteaTexto(CorrienteArchivo);
        // Cargo el valor de CorrienteEntexto, a la propiedad TEXT del memo
        MemoUPrincipal.Text:= CorrienteEntexto;
      finally
        // Libero la corriente
        CorrienteArchivo.Free;
      end;
    except
      on E: Exception do
      begin
        // En caso de algún error
        raise Exception.Create(e.Message);
      end;
    end;
  end
  else
  begin
    raise Exception.Create('Error se debio haber ejecutado el dialogo.');
  end;
end;

La función DeCorrienteaTexto, tiene:

Código Delphi [-]
function TForm1.DeCorrienteaTexto(Corriente: TStream): String;
var
  Temporal: TStringStream;
begin
  // Si la corriente es diferente de vacia
  if Corriente <> nil then
  begin
    // Creo mi corriente string termporal
    Temporal := TStringStream.Create('');
    try
      // Copio a mi corriente string la corriente desde la posicion 0
      Temporal.CopyFrom(Corriente, 0);
      // Le asigno al resultado el valor de mi corriente string, en la propiedad DataString
      Result := Temporal.DataString;
    finally
      Temporal.Free;
    end;
  end
  else
  begin
    Result := '';
  end;
end;

Ahora actualmente tengo solo un problema, todo el código funciona, y carga los valores de forma correcta, pero cuando intento cargar el texto en el memo, el memo solo muestra hasta el primer espacio del archivo binario es decir:

Archivo binario original:

ÿØÿà JFIF    ÿÛ „  &%"/ #'),,,150*5&+,)

 )$,)*,*,5))/))2)5,5),),)),))5./),),))),),,,,1,-),,+)ÿÀ  € P" ÿÄ    ÿÄ 9  ! 1AQ"aq‘2�±Ñ¡ÁáBRb#3ñ$rðÿÄ   ÿÄ $  !1A"Qa�‘ðÿÚ   ? Ôøgj•{·¦éÔ/'i½*ƒjquh¼\�\îF߸À/‡Ñ¢ÚÍuw‚5jÇ~x/M EUtqsq'©¾øL¹ÖŠ¢QÄÄ
ÅO?ã|vü@×*ïm‡;ž|ºànë/{ÅÓýºÄ}ñ#5#½P/`ãžâ:bcÎýDÙ"qL($Ì
¯;lwÁTª ŽwÀ ѱVÓ§Æ<3¼ybzyºJ*
‹ [Ä?8hZ3߈uufé/@Iý ûœRrƒPvþæ'é°ý0ëµóRµjŠ @бÔÛîpW, ‘aØáfo”™æú”òMü°jK:ŸÏçðÅš„ô|²DÁ½ööÃ.KJIÝŒŸÛ Ëj,Ãy>”×Ê¡`ºT 51�°ÀÝÚ¶§Ò¡G�ú\ùvca�ÿ ɽz –Éjh§H�Q³?àcÔž©hƒ)ÃUPjE$ÜØ{`¼§]@hH;˜yC
˜üÜ¢`~qb^Ã/tƒ~øbHD¤Ø§‰ö˜¢ša¤~0ç‚ö~�|¾˜”i`EŽúXtþÎä+Ð]¥©ŸÓÐþØ´ä;:´ßRØçÏ´„ñ›3¾Áð��™ -¥$r1Þ~p›…vW¿*QÈSÅêLÆ5äìÒô¡’÷±q÷ÂN'Àûª:VÎ×>So¶âû£(™o¯Ý±¦Ÿ_ãpZÎÂJ.�-¨Hó™ß<·aPõŒ›{Ÿ<y™¢)®…R‹±.0RaM-h¦ðî'A¸rÓ:µ¥V#Kª�ÂMÑï�¼àš9üºä;ºhiÔDK«¶˜®7½£|T²ôB¨ òÿ QØ“é¿*úÁ™ƒp$Äòùˆ;t“6²ãÂ+¥=,¥ž¨> U�lIF,O”XâÝÁs©Þè”n¸âzt<Æ3ì*f¢ò¤D€DÎÓ<"M¿Œ>ÿ *0¥ÞXX’Ó¿ ,˜Ä*•´‹¿í
4j�…Eñ ŒfÀ�„áµuJ‹ß³j§°Rµ!y2o¹#^Îöœ¹Ø’#ïl\òyç‰cr@>QˆœZe‹tVó\K-¦#TŸ
ÐÍ<¶
Ô{àÚ¹ª©OUT£ÃOw¡i Ÿ¶ÿ û r0p›ŠSzŸ!YÒ.cî0A’bF§™¯SSÓ*ƒeÒ_ÔIó#føX!›Y55C)S«×ÏÐ `§âµ©YˆžBÒ}# ß‹êiðÉæP_Êc|1ÅÝŠü±jŒzžl±™¬6ÞéôÃ|¥+·±m˜Þc Z¢‰!L“0LÀˆõĹå™Ue˜‚4Ä“n]zÏ–›f™E!ªæJ•¨�©ˆù�#±ž¶1ßç³`º¢ÈÂûædÌm8²:¸Úgøp߃pCV\ÜòŸ¾µÜDÚ¢×ðÛ*ÍQ˜üª¦gôÆŸ•V4älOÛ;1’D¦´’ þ¾xº ¸D‚@éˆÍ$´W§ÇnÅÙüÇu¤›†789”þ´ƒ÷úUûMñ uŒ½
}ñ’ ‹Ü),*Ÿ2pGf»PÕCê¢ô‚¶�/¸õ°ÜúáQ—�#²cuu¢úê2Eö'�±Nã™2Œb¨f‰%@·;âퟮ®ÿ 0Ï�ç>9ÅÅjºPøÞOŽb'Ûa�mè¡l¡ÖHðȾÓÿ 3ÿ 8;³uûºŒË!Š•y›Œx™-n5xNÐ.^Ø7†d4†$*ï~xÇ
lêI!ž@)'Pçy÷×Ï@:�»“í„Õ+.]•œwŒnfM¤bÌo€k泦îiªÁo*rĆ xž<#üâØwäñ/%Ÿþú§BššU&ç^ѵº�úXõœ¿ms‘ÍLÃ4�‰0y›m
½ðû‰pÚ9.ú(¢UIa©¤üÄ“rbÒ"ØÍ«2ÝB€Eù‘Ê òÂfß‘˜’KDùìóç*¢3$…Úÿ ÈÌ^7ÆÁØœ“ÒÈ
u˜;ësfÕˆÕýP ô9cP‚]”)Û§ÐãRìßJÔPF™I’Ö M…àG?\W Êß=ãÅ–
�F>žœü¾¸§±LAæ?û b*g~½1]í R�+w3|k“£Qîs&´TYYšL“t°Ü
�ùô;`îV“DÌŸêX &âæÓõlÆû.i*èY"æLú_¥f!| *Ô<ìIßldzVt£Þ‡‹Ãè]ª0$Ÿ
k$ÞIÿ qŒÍÇL8Lúå(»*1á¾� _Ó–(¹ÖbÁj__˰e¼)‘¾%ívk0i-7 !:IæÚ›ù^q*i++(6è©ÖâŠêV*g}RJ³’&$� �ô1û„ÒjåQv>Œ UQ›ÿ Tž“$ý`c®Åß-Z�TñlL�7* ‘<°–íJ´‹uo‡Õ)eêµUš¢4$›DÎÇÄLØy`.Ï1Z Êd– 䣟նúã]âuiT*µPÈu ¿±Æ-Âxs¡Óp.‰°Ç#°œ]K‹Bø9&>Ëg& m]0W¡ª�UºÀ*wñ�„yíí€èe �@ß™ëÓ¯ñ‰rÙãM
:€*È›A½ï�<“3,t'ájS¦)Uÿ USý¶$겓7 ó8wÂ{mF³¢:SPX ÍÉõ€/mÎã
ßàe È¥ëêy�ªŸ.¿éá'n¾SáÙSU*Uf•S!R ƒuPAã—�®Ç7Å_ÚhèK’½³ÙJ¡•M*c·—–9âÜ?¾h+ò)#§Ž$ƒÒ\e5øµFe&]*mïÏ8WÄ,ÕgV�ƒ®*¶¹3¾5MrBáévk¹>ÊáS@N«‰ÔÆ7ë錴üeó*B˜u�í7�õ›}0Éþ+qïb#Â*b¹S´[æ!ˆÚ@Ÿ,ª&÷fÉðó"í’Ty�: èÃo¡ûágk3¹~Qµ’Ìë‚I’I·/çîO·9ºb³(„G©öé…<gˆ5j*Qê5Rb]*ªÝ9_LQÆË){
³½°fJ½ƒ\ÁöKW6ZìÌט$�=Î
áy
¹“ÝÓUfY™0�„ß�ÄÔ;7š`ïÜxi¸¤ìÄ WÕ£L±Õá1±"w½”£éü£€ùIþÆñŠ7ÆÚJ¼<xB’WP¼k|KÈ0…¨¬Ü¿ñ«[~RyǶüDí†S1•j4šj3¤+Rt#KeŸË–øãàésA®UÝ?Ò¯c\òAö¿ï³)ï"@ò¼ûã™c£Lrýy|z,§ÌÁëޱ”Œ¼òõÇŠq(p±õßñç0dÎ :E-`<â8„ïŽqèÄ�jì‡*B¡9zjÏ $’-«”^óL>=®Í°*rº†¡*]-¥µ€4*+ãñ[˜Å†” ³*UÉ@!�}N.ÙÓd�ÛYZÌ»eYÁ™¶šuçËÛÿÙ

Texto mostrado en el memo:

ÿØÿà

Y no se por que??
__________________
De ante mano gracias por tomarse el tiempo de leer este Hilo.

-------------------------------
Juan Sebastián Cubillos Gonzalez
Desarrollador de soluciones informáticas.
Bogotá, Colombia.
Encuentra me en: http://www.linkedin.com/pub/juan-seb...lez/66/1b8/150
Responder Con Cita