Bitmap to Base64
Bitmap to Base64
Hepinize kolay gelsin abilerim ve arkadaşlarım;
Şimdi şöyle büyük bir sıkıntım var;
kamera ile resim çekip bir TImage nesnesine yerleştiriyorum;
kullandığım bir webservisde kaydetmem gereken veriler de resmi, base64 yaparak string şeklinde post etmem isteniyor;
Kısacası bir image içinde ki resmi nasıl base64e çevireceğim:(
tekrar tekrar teşekkürler şimdiden
Şimdi şöyle büyük bir sıkıntım var;
kamera ile resim çekip bir TImage nesnesine yerleştiriyorum;
kullandığım bir webservisde kaydetmem gereken veriler de resmi, base64 yaparak string şeklinde post etmem isteniyor;
Kısacası bir image içinde ki resmi nasıl base64e çevireceğim:(
tekrar tekrar teşekkürler şimdiden
Re: Bitmap to Base64
Kod: Tümünü seç
function Tform1.Base64FromBitmap(Bitmap: TBitmap): string;
var str:TStringStream;
s:string;
begin
str:=TStringStream.Create;
bitmap.SaveToStream(str);
s:=str.DataString;
result:=EncodeBase64(s,Length(s));
end;
end.
birincisi direk TStringStream ifadesini bana encodluyo işin içinden çıkamıyorum:(
Re: Bitmap to Base64
Bizi bu forumda takacak kimse yok mi acaba yaa
Re: Bitmap to Base64
Sadece vakit meselesi. Lütfen biraz daha sabırlı olun.

Kod: Tümünü seç
USES EncdDecd;
Kod: Tümünü seç
function BitmapToBase64(Bitmap: TBitmap): string;
var
Input : TMemoryStream;
Output: TStringStream;
begin
Input := TMemoryStream.Create;
try
Bitmap.SaveToStream(Input);
Input.Position := 0;
Output := TStringStream.Create('');
try
EncdDecd.EncodeStream(Input, Output);
Result := Output.DataString;
finally
Output.Free;
end;
finally
Input.Free;
end;
end;
Kod: Tümünü seç
function Base64ToBitmap(const base64: string): TBitmap;
var
Input : TStringStream;
Output: TMemoryStream;
begin
Input := TStringStream.Create(base64);
try
Output := TMemoryStream.Create;
try
EncdDecd.DecodeStream(Input, Output);
Output.Position := 0;
Result := TBitmap.Create;
try
Result.LoadFromStream(Output);
except
Result.Free;
raise;
end;
finally
Output.Free;
end;
finally
Input.Free;
end;
end;
Kod: Tümünü seç
procedure TForm1.BitBtn1Click(Sender: TObject);
Var
BMP: TBitmap;
strDosya : String;
begin
strDosya := ExtractFilePath(Application.Exename) + 'ornek.bmp';
BMP := TBitmap.Create;
BMP.LoadFromFile( strDosya );
With TStringList.Create do
begin
Text := BitmapToBase64( BMP );
SaveToFile( ChangeFileExt( strDosya, '.TXT' ) );
Free;
end;
BMP.Free;
end;
Kod: Tümünü seç
procedure TForm1.BitBtn2Click(Sender: TObject);
Var
BMP: TBitmap;
strDosya : String;
begin
strDosya := ExtractFilePath(Application.Exename) + 'ornek.txt';
BMP := TBitmap.Create;
With TStringList.Create do
begin
LoadFromFile( strDosya );
BMP.Assign( Base64ToBitmap(Text) );
Free;
end;
Image1.AutoSize := True;
Image1.Picture.Bitmap.Assign(BMP);
BMP.Free;
end;
Kod: Tümünü seç
Qk02DAAAAAAAADYAAAAoAAAAIAAAACAAAAABABgAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAsrKysrKysLCwr6+vr6+vr6+vr6+vr6+vr6+vr6+vr6+vr6+v
r6+vr6+vr6+vr6+vr6+vr6+vr6+vr6+vr6+vr6+vr6+vr6+vr6+vr6+vr6+vsLCwsrKysrKyAAAA
AAAAsrKy////////////////////////////////////////////////////////////////////
////////////////////////////////////////////srKyAAAAAAAAsLCw/////////v7+/v7+
/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
/v7+/v7+/v7+////////sLCwAAAAAAAAr6+v/////f39/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8
/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/f39////r6+v
AAAAAAAAr6+v/////Pz8+/v7/Pz8/Pz8/f39/f39/f39/f39/f39/f39/f39/Pz8/Pz8/Pz8/Pz8
/Pz8/f39/f39/f39/f39/Pz8/Pz8/Pz8/Pz8+/v7/Pz8////r6+vAAAAAAAAr6+v////+/v7/f39
////////////+fn5////////////////////////////////////////9vb2////////9/f3////
/////////////f39+/v7////r6+vAAAAAAAAr6+v////+/v7////Tk5O////goKChoaGkpKSjo6O
pqamjo6Ojo6Ovb29f39/////T09P////f39/eXl5m5ycjo6O3NzbfHx8////Tk5O////+/v7////
r6+vAAAAAAAAr6+v////+/v7////VFRU////ZWVljIyMaGdn/f39WVlZ5OTkt7e3ioqKfHt7////
VlZW////s7OzuLm5mJeXcXFx7ezsgoKC////VFRU////+/v7////r6+vAAAAAAAAr6+v////+vr4
////VVVV////pKSkp6ensbGxjo6Opqamj4+PkJCQhoaGhISE////V1dX////dnZ2enp6kpKShYWF
0tHRXV1d////VVVV////+vr4////r6+vAAAAAAAAr6+v////+Pn3////VVVV////////////////
+vr6/////f3+////////+/v7////VlZW////////+/z8////////////////////VVVV////+Pn3
////r6+vAAAAAAAAr7Cw////9/b2////VVZW////WVlaWVlZ////UlNT////WlpaWlpa////U1NT
////V1dY////U1NT////WlpaWVlZ////U1NT////VlZW////9/b2////r7CwAAAAAAAAsLCw////
9vX1//7+VldX////YGFhYGFh////V1hY////YGFhYGFh////WFhY////WFhY////WFhY////YGFh
YGFh////V1hY////VldX//7+9vX1////sLCwAAAAAAAAsLCw////9fT0/v39V1dX////YmJiYmJi
////WVlZ////YmJiYmJi////WVlZ////WVlZ////WVlZ////YmJiYmJi////WVlZ////V1dX/v39
9fT0////sLCwAAAAAAAAsLCw////9PPz/fz8V1dX////YmJiYmJi////WVlZ////YmJiYmJi////
WVlZ////WVlZ////WVlZ////YmJiYmJi////WVlZ////V1dX/fz89PPz////sLCwAAAAAAAAsLCw
////8/Lx/Pv6V1dX////YmJjYmJj////WVlZ////YmJjYmJj////WVlZ////WVlZ////WVlZ////
YmJjYmJj////WVlZ////V1dX/Pv68/Lx////sLCwAAAAAAAAsLCw////8fHw+vr5V1dY////Y2Nj
Y2Nj////WVla////Y2NjY2Nj////WVla////WVla////WVla////Y2NjY2Nj////WVla////V1dY
+vr58fHw////sLCwAAAAAAAAsLCw////8PDu+fn4WFhY////Y2NjY2Nj////Wlpa////Y2NjY2Nj
////Wlpa////Wlpa////Wlpa////Y2NjY2Nj////Wlpa////WFhY+fn48PDu////sLCwAAAAAAAA
sLCw////7u7t+Pj3WFhY////Y2NjY2Nj////Wlpa////Y2NjY2Nj////Wlpa////Wlpa////Wlpa
////Y2NjY2Nj////Wlpa////WFhY+Pj37u7t////sLCwAAAAAAAAsLCw////7e3s9/f2WFhY////
Y2NjY2Nj////Wlpa////Y2NjY2Nj////Wlpa////Wlpa////Wlpa////Y2NjY2Nj////Wlpa////
WFhY9/f27e3s////sLCwAAAAAAAAsLCw////7Ovr9vT1WFhY////Y2NjY2Nj////Wlpa////Y2Nj
Y2Nj////Wlpa////Wlpa////Wlpa////Y2NjY2Nj////Wlpa////WFhY9vT17Ovr////sLCwAAAA
AAAAsLCw////6+rq9fPzWFhY////Y2NjY2Nj////Wlpa////Y2NjY2Nj////Wlpa////Wlpa////
Wlpa////Y2NjY2Nj////Wlpa////WFhY9fPz6+rq////sLCwAAAAAAAAsLCw////6unp8/LyWFhY
//7+YmJiYmJi//7+Wlpa//7+YmJiYmJi//7+Wlpa/v39Wlpa/v39Wlpa//7+YmJiYmJi//7+Wlpa
/v39WFhY8/Ly6unp////sLCwAAAAAAAAsLCw////6Ofm7+7tU1NT+fj2WlpbWlpb+fj2VFRV+fj2
WlpbWlpb+fj2VFRV+Pf1VFRV+Pf1VFRV+fj2WlpbWlpb+fj2VFRV+Pf1U1NT7+7t6Ofm////sLCw
AAAAAAAAsLCw////5uXk6uno7ezr7ezr8O/u8O/u7ezr7u3r7ezr8O/u8O/u7ezr7u3r7ezr7u3r
7ezr7u3r7ezr8O/u8O/u7ezr7u3r7ezr7ezr6uno5uXk////sLCwAAAAAAAAsLCw////5OPi5uXk
5+bl5+bl6Ofm6Ofm5+bl5+bl5+bl6Ofm6Ofm5+bl5+bl5+bl5+bl5+bl5+bl5+bl6Ofm6Ofm5+bl
5+bl5+bl5+bl5uXk5OPi////sLCwAAAAAAAAsLCw////4+Lh5eTj5eTj5eTj5eTj5eTj5eTj5eTj
5eTj5eTj5eTj5eTj5eTj5eTj5eTj5eTj5eTj5eTj5eTj5eTj5eTj5eTj5eTj5eTj5eTj4+Lh////
sLCwAAAAAAAAsLCw////4uHg4+Lh5OPi5OPi5OPi5OPi5OPi5OPi5OPi5OPi5OPi5OPi5OPi5OPi
5OPi5OPi5OPi5OPi5OPi5OPi5OPi5OPi5OPi5OPi4+Lh4uHg////sLCwAAAAAAAAsLCw////4N/e
4eDf4eDf4eDf4eDf4eDf4eDf4eDf4eDf4eDf4eDf4eDf4eDf4eDf4eDf4eDf4eDf4eDf4eDf4eDf
4eDf4eDf4eDf4eDf4eDf4N/e////sLCwAAAAAAAAsrKy////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////srKyAAAAAAAAsbGxsrKysLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCw
sLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsrKysbGxAAAA
Re: Bitmap to Base64
Muharrem hocam çok sağolun fakt sıkıntım şurada ;
ben Timage ile çalıştığım için onun içindeki resmi bitmape çevirmem gerekiyor dinamik olarak bunu nasıl sağlayabilirm aksi halde fonksiyonu kullanamam;
siz Bitmap dosyasını çağırmışsınız fakat Timage içindeki bitmap değil
ve savetostream fonksiyonu bir tek bitmap ile çalışıyor
ben Timage ile çalıştığım için onun içindeki resmi bitmape çevirmem gerekiyor dinamik olarak bunu nasıl sağlayabilirm aksi halde fonksiyonu kullanamam;
siz Bitmap dosyasını çağırmışsınız fakat Timage içindeki bitmap değil
ve savetostream fonksiyonu bir tek bitmap ile çalışıyor
- barisatalay
- Üye
- Mesajlar: 398
- Kayıt: 02 Nis 2013 05:43
- İletişim:
Re: Bitmap to Base64
TImage nesnesinin içerisinde zaten bitmap vardır.
Örneğin: Image1.Bitmap şeklinde bir denerseniz fark edeceksiniz.
Örneğin: Image1.Bitmap şeklinde bir denerseniz fark edeceksiniz.
Yeni bloğum: http://brsatalay.blogspot.com.tr/
Re: Bitmap to Base64
Hocam kolay gelsin verdiğiniz bilgilerden faydalanarak sonunda hallettim sadece biraz sihir gerekiyor:)
Hocam şimdi şunu yaptım ben image nesnesinin içindeki resim ne olursa olsun çevirebilsin diye genelden gittim;
Fonksiyonuda şu şekilde değiştirdim;
satırı ile bu işi hallettim ama hocam bana ufak bir resimde bile 125 000 kusur karekter veriyor
Hocam şimdi şunu yaptım ben image nesnesinin içindeki resim ne olursa olsun çevirebilsin diye genelden gittim;
Fonksiyonuda şu şekilde değiştirdim;
Kod: Tümünü seç
function BitmapToBase64(image:TImage): string;
var
Input : TMemoryStream;
Output: TStringStream;
begin
Input := TMemoryStream.Create;
try
image.Picture.Graphic.SaveToStream(Input);
Input.Position := 0;
Output := TStringStream.Create('');
try
EncdDecd.EncodeStream(Input, Output);
Result := Output.DataString;
finally
Output.Free;
end;
finally
Input.Free;
end;
end;
Kod: Tümünü seç
image.Picture.Graphic.SaveToStream(Input);
Re: Bitmap to Base64
barış bey kardeşim öyle olmadı bitmap olmuyo yani isterseniz deneyebilirsniz;
Loadstream ya da savestream fonskiyonlarına ualaşamıyorsunuz
ayrıca barış bey kardeişm kamera çektği fotoğrafı image picture diye mi aktarıyor
Loadstream ya da savestream fonskiyonlarına ualaşamıyorsunuz
ayrıca barış bey kardeişm kamera çektği fotoğrafı image picture diye mi aktarıyor
- barisatalay
- Üye
- Mesajlar: 398
- Kayıt: 02 Nis 2013 05:43
- İletişim:
Re: Bitmap to Base64
Eğer bir Vcl form actıysanız ve TImage nesnesini eklediyseniz Image.bitmap özelliği olmaması gayet normaldir.gaus yazdı:barış bey kardeşim öyle olmadı bitmap olmuyo yani isterseniz deneyebilirsniz;
Loadstream ya da savestream fonskiyonlarına ualaşamıyorsunuz
ayrıca barış bey kardeişm kamera çektği fotoğrafı image picture diye mi aktarıyor
Suan emin olmak için yine kontrol ettim.
Bölümümüzün adıda "Firemonkey ve Mobil"dir cevabımıda ona göre vermiştim.

Yeni bloğum: http://brsatalay.blogspot.com.tr/
Re: Bitmap to Base64
Kod: Tümünü seç
image.MultiResBitmap.SaveToStream(Input);
