Pelo que entendi seu maior problema é transformar uma imagem em texto e depois converter o texto em imagem, certo?
Se for isso, acho que as 4 funções abaixo podem te ajudar.
Sei que as 2 primeiras funcionam perfeitamente bem. As 2 ultimas são versões otimizadas as primeiras, mas não posso garantir o funcionamento.
Favor confirmar se é isso mesmo que você precisa, e se essas funções foram úteis/funcionaram.
function PictureToStr(pic : TPicture) : String;
var
ms : TMemoryStream;
Str : String;
bytesLidos,
x : Integer;
Buf : Array[1..2048] of Char;
begin
ms := TMemoryStream.Create;
try
Pic.SaveToFile('c:\image.jpg');
ms.LoadFromFile('c:\image.jpg');
if ms.Size > 0 then
begin
Str := '';
repeat
bytesLidos := ms.Read(Buf, sizeOf(Buf));
for x := 1 to bytesLidos do
begin
case ord(Buf[x]) of
92, 39, 34:
Str := Str + '\' + Buf[x];
13:
Str := Str + '<13>';
10:
Str := Str + '<10>';
0:
Str := Str + '\nul';
else
Str := Str + Buf[x];
end;
end;
until bytesLidos = 0;
result := Str;
end;
finally
DeleteFile('c:\image.jpg');
end;
end;
function StrToPicture(Str: String): TPicture;
var
image: TPicture;
sl: TStringList;
begin
Str := AnsiReplaceStr(Str, '<13>', chr(13));
Str := AnsiReplaceStr(Str, '<10>', chr(10));
Str := AnsiReplaceStr(Str, '\'+ chr(92), chr(92));
Str := AnsiReplaceStr(Str, '\'+ chr(39), chr(39));
Str := AnsiReplaceStr(Str, '\'+ chr(34), chr(34));
Str := AnsiReplaceStr(Str, '\nul', chr(0));
sl := TStringList.Create;
image := TPicture.Create;
sl.Clear;
sl.Add(Str);
try
sl.SaveToFile('c:\image.jpg');
image.LoadFromFile('c:\image.jpg');
result := image;
finally
DeleteFile('c:\image.jpg');
end;
end;
function fastPictureToStr(pic : TPicture) : String;
var
ms : TMemoryStream;
Str : String;
bytesLidos,
x : Integer;
Buf : Array[1..2048] of Char;
begin
ms := TMemoryStream.Create;
try
Pic.SaveToFile('c:\image.jpg');
ms.LoadFromFile('c:\image.jpg');
if ms.Size > 0 then
begin
Str := '';
repeat
bytesLidos := ms.Read(Buf, sizeOf(Buf));
for x := 1 to bytesLidos do
begin
case ord(Buf[x]) of
92, 39, 34:
Str := Str + '\' + Buf[x];
13:
Str := Str + '<13>';
10:
Str := Str + '<10>';
0:
Str := Str + '\nul';
else
Str := Str + Buf[x];
end;
end;
until bytesLidos = 0;
result := Str;
end;
finally
DeleteFile('c:\image.jpg');
end;
end;
function fastStrToPicture(Str: String): TPicture;
var
image: TPicture;
sl: TStringList;
begin
Str := FastAnsiReplace(Str, '<13>', chr(13), [rfReplaceAll, rfIgnoreCase]);
Str := FastAnsiReplace(Str, '<10>', chr(10), [rfReplaceAll, rfIgnoreCase]);
Str := FastAnsiReplace(Str, '\'+ chr(92), chr(92), [rfReplaceAll, rfIgnoreCase]);
Str := FastAnsiReplace(Str, '\'+ chr(39), chr(39), [rfReplaceAll, rfIgnoreCase]);
Str := FastAnsiReplace(Str, '\'+ chr(34), chr(34), [rfReplaceAll, rfIgnoreCase]);
Str := FastAnsiReplace(Str, '\nul', chr(0), [rfReplaceAll, rfIgnoreCase]);
sl := TStringList.Create;
image := TPicture.Create;
sl.Clear;
sl.Add(Str);
try
sl.SaveToFile('c:\image.jpg');
image.LoadFromFile('c:\image.jpg');
result := image;
finally
DeleteFile('c:\image.jpg');
end;
end;
--
José Henrique (Zote)
-----Mensagem original-----
De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Allan
Enviada em: quinta-feira, 18 de maio de 2006 11:34
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: [delphi-br] Olha o problemão aí, estou novamente aqui com isto. Ilustríssimo Andreano Lanusse, veja se pode ajudar.
Ilustríssimo Sr. Andreano Lanusse,
fico muito feliz por responder, é o seguinte, parece simples:
delphi 6 com FB 1.5.2., tem um campo Imagem BLOB Sub_Type 0, nele está gravada uma imagem (jpg ou bmp, tanto faz), daí possuo outro campo ImagemTXT BLOB Sub_Type 1, tenho que pegar essa imagem do Imagem BLOB Sub_Type 0 e jogar no ImagemTXT BLOB Sub_Type 1 pra enviar ela com o comando SendString(WinSocket), é isso que preciso.
Em outras palavras, converter uma imagem em texto, ler ela(o texto gerado), e gravar novamente em imagem, mas que no final eu possa abrir e fazer o mesmo processo se precisar, entendeu?.Faça um teste, abra uma .jpg no bloco de notas, salve como .jpg mesmo, mas com outro nome, tente abrir, vc não consegue, é isso que preciso, preciso que ela abra depois, é como se eu editasse a imagem.
Por favor me ajude com esse Crep's aqui.
Agradeço antecipadamente.
[]'s
Allan
----- Original Message -----
From: Andreano Lanusse
To: delphi-br@yahoogrupos.com.br
Sent: Thursday, May 18, 2006 11:21 AM
Subject: RES: [delphi-br] Olha o problemão aí, estou novamente aqui com isto. Ilustríssimo Andreano Lanusse, veja se pode ajudar.
Allan,
Explica melhor que eu não estou ententendo nada....
Você quer gravar um Blob com imagem em um TXT????? É isso?????
[]'s
Andreano Lanusse
System Engineer
Borland Latin America
Tel: +55 (11) 2165.8089 / Mobile: +55 (11) 8196.5912
[EMAIL PROTECTED] - www.borland.com.br
A Borland Software é líder global em soluções independentes de plataforma para o Software Delivery Optimization, auxiliando nossos clientes a resolverem as restrições no desenvolvimento de aplicações nos dias de hoje, para maximizar o valor do negócio de seu software.
-----Mensagem original-----
De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Allan
Enviada em: quarta-feira, 17 de maio de 2006 22:03
Para: delphi-br@yahoogrupos.com.br
Assunto: [delphi-br] Olha o problemão aí, estou novamente aqui com isto.. Ilustríssimo Andreano Lanusse, veja se pode ajudar.
Prezados,
pra quem está tentando me ajudar, vejam bem:
se eu conseguir transformar um blob (jpg,bmp) em texto e gravar num arquivo txt, depois abrir o arquivo txt num memo e transformar ele em blob novamente, o problema está resolvido. Assim o problema fica mais resumido, quem sabe alguma boa idéia e pronto, gente muitos tentaram, agora eu pergunto, será que não tem como fazer isso no delphi?, o delphi é praticamente "ilimitado!", como posso conseguir essa façanha??.
Carro Andreano Lanusse, você teria aguma sugestão?, alguma idéia de como fazer isso??.
Ansiosamente no aguardo.
Saudações a todos.
Allan Gabriel
[As partes desta mensagem que não continham texto foram removidas]
--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
Links do Yahoo! Grupos
--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
Yahoo! Grupos, um serviço oferecido por:
PUBLICIDADE
------------------------------------------------------------------------------
Links do Yahoo! Grupos
a.. Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/
b.. Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!.
[As partes desta mensagem que não continham texto foram removidas]
--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
Links do Yahoo! Grupos
X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on
poseidon.bludata.com.br
X-Spam-Level:
X-Spam-Status: No, score=2 required=0 tests=L,BAYES_00,
DNS_FROM_RFC_ABUSE,DNS_FROM_RFC_WHOIS,SUBJECT_ENCODED_TWICE
autolearn= version=1.0
Received: (qmail 87532 invoked by uid 0); 18 May 2006 20:25:24 -0300
Received: from 66.163.187.175 by poseidon.bludata.com.br (envelope-from <[EMAIL PROTECTED]>, uid 0) with qmail-scanner-1.25
(clamdscan: 0.88/1230. spamassassin: 3.1.0.
Clear:RC:0(66.163.187.175):SA:0(0.1/5.0):.
Processed in 6.383468 secs); 18 May 2006 23:25:24 -0000
X-Qmail-Scanner-Mail-From: [EMAIL PROTECTED] via poseidon.bludata.com.br
X-Qmail-Scanner: 1.25 (Clear:RC:0(66.163.187.175):SA:0(0.1/5.0):. Processed in 6.383468 secs)
Received: from unknown (HELO n8b.bullet.sc5.yahoo.com) (66.163.187.175)
by poseidon.bludata.com.br with SMTP; 18 May 2006 20:25:17 -0300
Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys
DomainKey-Signature: a=a-sha1; q=s; c=fws; s=tel; d=hoogrupos.com.br;
bìLG/mek0lm9jiwqx0aHlQqmguRNnka8LrIQbKoiL/KYEIjwFP7+cLiqPZNuCXrPBZq06ATwp6WPgHdxhJLmoLq7hIb/hpsO/wvXZoowJFSDVsL0Ky8oyulMFlf39saE;
Received: from [66.163.187.123] by n8.bullet.sc5.yahoo.com with NNFMP; 18 May 2006 23:25:05 -0000
Received: from [66.218.69.1] by t4.bullet.sc5.yahoo.com with NNFMP; 18 May 2006 23:25:05 -0000
Received: from [66.218.66.31] by t1.bullet.scd.yahoo.com with NNFMP; 18 May 2006 23:25:05 -0000
X-Yahoo-Newman-Property: groups-email
X-Yahoo-Newman-Id: 1058778-m140338
Received: (qmail 27344 invoked from network); 18 May 2006 23:22:33 -0000
Received: from unknown (66.218.66.217)
by m25.grp.scd.yahoo.com with QMQP; 18 May 2006 23:22:33 -0000
Received: from unknown (HELO n12a.bullet.sc5.yahoo.com) (66.163.187.155)
by mta2.grp.scd.yahoo.com with SMTP; 18 May 2006 23:22:33 -0000
Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys
Received: from [66.163.187.121] by n12.bullet.sc5.yahoo.com with NNFMP; 18 May 2006 23:20:55 -0000
Received: from [66.218.69.4] by t2.bullet.sc5.yahoo.com with NNFMP; 18 May 2006 23:20:55 -0000
Received: from [66.218.66.64] by t4.bullet.scd.yahoo.com with NNFMP; 18 May 2006 23:20:55 -0000
X-Sender: [EMAIL PROTECTED]
X-Apparently-To: delphi-br@yahoogrupos.com.br
Received: (qmail 30837 invoked from network); 18 May 2006 14:50:26 -0000
Received: from unknown (66.218.66.216)
by m15.grp.scd.yahoo.com with QMQP; 18 May 2006 14:50:25 -0000
Received: from unknown (HELO valkyria.concordia.psi.br) (200.247.156.131)
by mta1.grp.scd.yahoo.com with SMTP; 18 May 2006 14:50:01 -0000
Received: from rafael (200-247-156-244.wireless.concordia.psi.br [200.247.156.244])
by valkyria.concordia.psi.br (8.13.6/8.13.6) with SMTP id k4IEXdVM003749
for <delphi-br@yahoogrupos.com.br>; Thu, 18 May 2006 11:33:39 -0300
Message-ID: <[EMAIL PROTECTED]>
To: <delphi-br@yahoogrupos.com.br>
References: <[EMAIL PROTECTED]>
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-Originating-IP: 200.247.156.131
X-eGroups-Msg-Info: 1:12:0:0
From: "Allan" <[EMAIL PROTECTED]>
X-Yahoo-Profile: allan20024
X-eGroups-Approved-By: emgfyah2002 <[EMAIL PROTECTED]> via web; 18 May 2006 23:20:54 -0000
Sender: delphi-br@yahoogrupos.com.br
MIME-Version: 1.0
Mailing-List: list delphi-br@yahoogrupos.com.br; contact [EMAIL PROTECTED]
Delivered-To: mailing list delphi-br@yahoogrupos.com.br
List-Id: <delphi-br.yahoogrupos.com.br>
Precedence: bulk
List-Unsubscribe: <mailto:[EMAIL PROTECTED]>
Date: Thu, 18 May 2006 11:33:38 -0300
Subject: =so-8859-1?Q?Re:_[delphi-br]_Olha_o_problemão_aí,_estou_n? =so-8859-1?Q?ovamente_aqui_com_isto._Ilustríssimo_Andreano_Lanusse,? =so-8859-1?Q?_veja_se_pode_ajudar.?Reply-To: delphi-br@yahoogrupos.com.br
Content-Type: text/plain; charset=O-8859-1
Content-Transfer-Encoding: quoted-printable
Ilustríssimo Sr. Andreano Lanusse,
fico muito feliz por responder, é o seguinte, parece simples:
delphi 6 com FB 1.5.2., tem um campo Imagem BLOB Sub_Type 0, nele está gravada uma imagem (jpg ou bmp, tanto faz), daí possuo outro campo ImagemTXT BLOB Sub_Type 1, tenho que pegar essa imagem do Imagem BLOB Sub_Type 0 e jogar no ImagemTXT BLOB Sub_Type 1 pra enviar ela com o comando SendString(WinSocket), é isso que preciso.
Em outras palavras, converter uma imagem em texto, ler ela(o texto gerado), e gravar novamente em imagem, mas que no final eu possa abrir e fazer o mesmo processo se precisar, entendeu?.Faça um teste, abra uma .jpg no bloco de notas, salve como .jpg mesmo, mas com outro nome, tente abrir, vc não consegue, é isso que preciso, preciso que ela abra depois, é como se eu editasse a imagem.
Por favor me ajude com esse Crep's aqui.
Agradeço antecipadamente.
[]'s
Allan
----- Original Message -----
From: Andreano Lanusse
To: delphi-br@yahoogrupos.com.br
Sent: Thursday, May 18, 2006 11:21 AM
Subject: RES: [delphi-br] Olha o problemão aí, estou novamente aqui com isto. Ilustríssimo Andreano Lanusse, veja se pode ajudar.
Allan,
Explica melhor que eu não estou ententendo nada....
Você quer gravar um Blob com imagem em um TXT????? É isso?????
[]'s
Andreano Lanusse
System Engineer
Borland Latin America
Tel: +55 (11) 2165.8089 / Mobile: +55 (11) 8196.5912
[EMAIL PROTECTED] - www.borland.com.br
A Borland Software é líder global em soluções independentes de plataforma para o Software Delivery Optimization, auxiliando nossos clientes a resolverem as restrições no desenvolvimento de aplicações nos dias de hoje, para maximizar o valor do negócio de seu software.
-----Mensagem original-----
De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Allan
Enviada em: quarta-feira, 17 de maio de 2006 22:03
Para: delphi-br@yahoogrupos.com.br
Assunto: [delphi-br] Olha o problemão aí, estou novamente aqui com isto.. Ilustríssimo Andreano Lanusse, veja se pode ajudar.
Prezados,
pra quem está tentando me ajudar, vejam bem:
se eu conseguir transformar um blob (jpg,bmp) em texto e gravar num arquivo txt, depois abrir o arquivo txt num memo e transformar ele em blob novamente, o problema está resolvido. Assim o problema fica mais resumido, quem sabe alguma boa idéia e pronto, gente muitos tentaram, agora eu pergunto, será que não tem como fazer isso no delphi?, o delphi é praticamente "ilimitado!", como posso conseguir essa façanha??.
Carro Andreano Lanusse, você teria aguma sugestão?, alguma idéia de como fazer isso??.
Ansiosamente no aguardo.
Saudações a todos.
Allan Gabriel
[As partes desta mensagem que não continham texto foram removidas]
--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
Links do Yahoo! Grupos
--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
Yahoo! Grupos, um serviço oferecido por:
PUBLICIDADE
------------------------------------------------------------------------------
Links do Yahoo! Grupos
a.. Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/
b.. Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!.
[As partes desta mensagem que não continham texto foram removidas]
--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
Links do Yahoo! Grupos
--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
<*> Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages
<*> Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
Yahoo! Grupos, um serviço oferecido por: | |
|
Links do Yahoo! Grupos
- Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/
- Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
- O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!.