Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
ekran görüntüsü alma sorunu ?
#1
iyi akşamlar ,

layout bileşenini kullanarak ekran görüntüsü alıyorum fakat resim siyah oluyor bunu nasıl çözebilirim ?

daha önce bu konuda bir konu daha açılmıştı sanırım fakat onu bulamadım birdaha.

Image1.Bitmap := Layout1.MakeScreenshot;
Cevapla
#2
Hocam Siteyi incelermisiniz..

https://stackoverflow.com/questions/1030...-platforms
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#3
(05-11-2018, Saat: 20:29)mcuyan Adlı Kullanıcıdan Alıntı: Hocam Siteyi incelermisiniz..

https://stackoverflow.com/questions/1030...-platforms

hocam siteye göz gezdirdim de mac ve windows üzerine anlatım yapılmış sanırım ki android arasında da pek fark yoktur diye düşünüyorum.
fırsatım olduğunda test edip sonuç için döneceğim sitedeki kodları.
Cevapla
#4
(05-11-2018, Saat: 20:01)Mr.Developer Adlı Kullanıcıdan Alıntı: iyi akşamlar ,

layout bileşenini kullanarak ekran görüntüsü alıyorum fakat resim siyah oluyor bunu nasıl çözebilirim ?

daha önce bu konuda bir konu daha açılmıştı sanırım fakat onu bulamadım birdaha.

Image1.Bitmap := Layout1.MakeScreenshot;


tabiki hiç denemedim ama belki de layout1'in içindeki bileşenlerin ekran görüntüsünü almaya yarıyordur. Daha doğrusu siz neyin ekran görüntüsünü almak istiyorsunuz?
Cevapla
#5
@Mr.Developer Hocam alt tarafta IOS ve Android için kodun okeylendiği bilgisi var.. Bizi de bilgilendirirsen forum için güzel bir bilgi birikimi olacaktır. Teşekkürler Wink
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#6
(05-11-2018, Saat: 23:44)hakanharbeli Adlı Kullanıcıdan Alıntı:
(05-11-2018, Saat: 20:01)Mr.Developer Adlı Kullanıcıdan Alıntı: iyi akşamlar ,

layout bileşenini kullanarak ekran görüntüsü alıyorum fakat resim siyah oluyor bunu nasıl çözebilirim ?

daha önce bu konuda bir konu daha açılmıştı sanırım fakat onu bulamadım birdaha.

Image1.Bitmap := Layout1.MakeScreenshot;


tabiki hiç denemedim ama belki de layout1'in içindeki bileşenlerin ekran görüntüsünü almaya yarıyordur. Daha doğrusu siz neyin ekran görüntüsünü almak istiyorsunuz?

hocam layout içindekileri almak istiyorum zaten ve aldığımda ekan görüntüsü olması gerektiği gibi değil yani yarısı siyah oluyor butonlar falan görünmüyor arka plan simsiyah gibi sorunlar yaşatıyor.
bir nevi renkleri yakalarken baya bir değişime uğruyor.

(05-11-2018, Saat: 23:52)mcuyan Adlı Kullanıcıdan Alıntı: @Mr.Developer Hocam alt tarafta IOS ve Android için kodun okeylendiği bilgisi var.. Bizi de bilgilendirirsen forum için güzel bir bilgi birikimi olacaktır. Teşekkürler Wink

şimdi bir denemeler yapayım bakim.  Smile

sonuç için döneceğim, yaparsam kesin dönerim  Smile
Cevapla
#7
fmxexpress.com sitesinden alıntı bu kodlar çalışıyor
işe yarayabilir 


function MakeScaleScreenshot(Sender:TObject): TBitmap;
var
fScreenScale: Single;
function GetScreenScale: Single;
var
ScreenService: IFMXScreenService;
begin
Result := 1;
if TPlatformServices.Current.SupportsPlatformService (IFMXScreenService, IInterface(ScreenService)) then
begin
Result := ScreenService.GetScreenScale;
end;
end;
begin
fScreenScale := GetScreenScale;
Result := TBitmap.Create(Round(TForm1(Sender).Width*fScreenScale), Round(TForm1(Sender).Height*fScreenScale));
Result.Clear(0);
if Result.Canvas.BeginScene then
try
Tform1(Sender).PaintTo(Result.Canvas);
finally
Result.Canvas.EndScene;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
B: TBitmap;
begin
B := MakeScaleScreenshot(Self);
Image1.Bitmap.Assign(B);
B.DisposeOf;
end;

uses FMX.Platform eklenmeli
Cevapla
#8
(06-11-2018, Saat: 19:05)bilsoft8b Adlı Kullanıcıdan Alıntı: fmxexpress.com sitesinden alıntı bu kodlar çalışıyor
işe yarayabilir 


function MakeScaleScreenshot(Sender:TObject): TBitmap;
var
fScreenScale: Single;
function GetScreenScale: Single;
var
ScreenService: IFMXScreenService;
begin
Result := 1;
if TPlatformServices.Current.SupportsPlatformService (IFMXScreenService, IInterface(ScreenService)) then
begin
Result := ScreenService.GetScreenScale;
end;
end;
begin
fScreenScale := GetScreenScale;
Result := TBitmap.Create(Round(TForm1(Sender).Width*fScreenScale), Round(TForm1(Sender).Height*fScreenScale));
Result.Clear(0);
if Result.Canvas.BeginScene then
try
Tform1(Sender).PaintTo(Result.Canvas);
finally
Result.Canvas.EndScene;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
B: TBitmap;
begin
B := MakeScaleScreenshot(Self);
Image1.Bitmap.Assign(B);
B.DisposeOf;
end;

uses FMX.Platform eklenmeli

olumlu sonuç.
Mükemmel hocam saolun. olması gerektiğinden daha iyi çalışıyor. Shy
büyük dertten kurtuldum.

(05-11-2018, Saat: 23:52)mcuyan Adlı Kullanıcıdan Alıntı: @Mr.Developer Hocam alt tarafta IOS ve Android için kodun okeylendiği bilgisi var.. Bizi de bilgilendirirsen forum için güzel bir bilgi birikimi olacaktır. Teşekkürler Wink

hocam sitedeki kodlardan olumlu sonuç alabilmiş değilim ve bunu belirtmek için girdiğimde @bilsoft8b 'nin kod paylaşımını gördüm ve hemen test ettim.
ve çalışıyor. onu kullanmak daha iyi olur. hem hazır hem uğratırmadan  Shy

ve tekrar teşekkür ederim hocam.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Wmware Macos Apple Hesap Sorunu nurah 3 359 20-08-2026, Saat: 22:35
Son Yorum: codder71
  Google Play Billing Versiyon Sorunu[ÇÖZÜLDÜ] codder71 12 1.168 01-08-2026, Saat: 22:45
Son Yorum: codder71
  Android 16 Uygulama Ekran Taşma Sorunu[ÇÖZÜLDÜ] codder71 5 674 31-07-2026, Saat: 23:38
Son Yorum: mcuyan
  PHPickerDelegate Derleme Sorunu [ÇÖZÜLDÜ] codder71 13 1.346 18-07-2026, Saat: 22:54
Son Yorum: emailx45
  Delphi FMX, geliştirdiğiniz uygulamanın log kaydını alma işlemi muratcelik64 3 599 22-03-2026, Saat: 05:00
Son Yorum: ovural



Konuyu Okuyanlar: 3 Ziyaretçi