Hogyan lehet bekapcsolni a anti-aliasing élsimítást android - tűz majom tól Z-ig

Hogyan lehet bekapcsolni a anti-aliasing élsimítást android - tűz majom tól Z-ig

Szembesülve a következő probléma - TImage figyelmen kívül hagyja alapjelek XRadius és YRadius a TRectangle (10,1 Berlin frissítési 2)

Az alsó sorban - Meg kell, hogy TRectangle sarkai enyhén lekerekített, erre én meg a XRadius és YRadius. Belül TRectangle található TImage (0,0 a bal felső sarokban, szélesség és magasság méretek egybeesik TRectangle). Amikor betölt egy képet TImage (a tervező, hogy a szoftver), kiderül, hogy a TImage jelenik derékszögben, figyelmen kívül hagyva XRadius YRadius és a szülő. ClipChildren ingatlan TRectangle telepítve.
Hogyan lehet a TImage a vége lekerekített sarkokkal? Ami érdekes, hogy TCircle ez a terv működik, vágás TImage.

Hogyan lehet bekapcsolni a anti-aliasing élsimítást android - tűz majom tól Z-ig

Írok cross-platform alkalmazásokat. A keresési eredmény megjelenik TGrid. Ezt a kérdést a képek bemutatására az egyik oszlopot.
Windows-on, minden rendben van, de a tabletta egyszerűen csodákat: Az első feltérképezése minden rendesen, de ha prostokolit fel és le, mint más játékteret képeket, mások is tűnik fejjel lefelé.
A kód a kép mentéséhez (jpg) az adatbázisban:
ha Címzett (SM), azután indítsa sm.Position: = 0; //TBlobField(dmData.cdsPlayerData.FieldByName('Photo')).LoadFromStream(sm); VIMAGE: = TImage.Create (nulla); próbálja sm.Position: = 0; vImage.Bitmap.LoadFromStream (sm); vKoef: = vImage.Bitmap.Height / 64; vImage.Bitmap.Resize (TRUNC (vImage.Bitmap.Width / vKoef), TRUNC (vImage.Bitmap.Height / vKoef)); sm.Free; sm: = TMemoryStream.Create (); próbálja vImage.Bitmap.SaveToStream (sm); TBlobField (dmData.cdsPlayerData.FieldByName ( 'SmallPhoto')) LoadFromStream (sm) .; végül sm.Free; végén; végül vImage.Free; végén; végén; Előtt görgetni:

Próbáltam és LiveBinding, és kézi rajz - az eredmény ugyanaz. Valami ötlet, mi a baj?
Ui Tudom, mit kell tenni a TListView, de az ügyfél akar „háló a régi program”, mint az android fut csak a lemezek - értettem egyet.

Hogyan lehet bekapcsolni a anti-aliasing élsimítást android - tűz majom tól Z-ig

var s: string; FS: TFileStream; kezdődik fs: = TFileStream.Create (tpath.Combine (tpath.GetDownloadsPath, 'load.jpg'), fmCreate); NetHTTPClient1.Get ((küldő, mint TImage) .Hint, fs); fs.Free; (Küldő, mint TImage) .MultiResBitmap.Bitmaps [1] .LoadFromFile (tpath.Combine (tpath.GetDownloadsPath, 'load.jpg')); Én csatlakozik további pas található ezen a fórumon FMX.Features.Bitmap.Helpers.pas
(Küldő, mint TImage) .MultiResBitmap.Bitmaps [1] .LoadFromUrl ((küldő, mint TImage) .Hint); olyan könnyű megtenni, és tanácsot Georgia és a forma nem lógott?

Hogyan lehet bekapcsolni a anti-aliasing élsimítást android - tűz majom tól Z-ig

Üdvözlünk!
A cél az, hogy feltölteni a képeket, és megjeleníti azokat egy listában. Úgy tűnik, a két ujját, de.
A kód dolgozott sokáig, mindent betöltött, és megjelenik. Egy idő után, a fénykép többé nem töltődik. Hibakeresés kiderült zárt végtelen ciklus ebben az eljárásban:
eljárás TBitmap.AssignFromSurface (const Forrás: TBitmapSurface); var BitmapData: TBitmapData; MAXSIZE: integer; ResampledSurface: TBitmapSurface; I: integer; SourceRect: TRectF; kezdődik MAXSIZE: = CanvasClass.GetAttribute (TCanvasAttribute.MaxBitmapSize); <-- MaxSize = 0 if (Source.Width> MAXSIZE) vagy (Source.Height> MAXSIZE) Ezután kezdődik SourceRect: = TRectF.Create (0, 0, Source.Width, Source.Height); SourceRect.Fit (TRectF.Create (0, 0, MAXSIZE, MAXSIZE)); ResampledSurface: = TBitmapSurface.Create; próbálja ResampledSurface.StretchFrom (Forrás TRUNC (SourceRect.Width) TRUNC (SourceRect.Height) PixelFormat); AssignFromSurface (ResampledSurface); <-- infinity loop here finally ResampledSurface.Free; end; end else begin SetSize(Source.Width, Source.Height); if Map(TMapAccess.Write, BitmapData) then try for I := 0 to TBitmapSurface(Source).Height - 1 do Move(TBitmapSurface(Source).Scanline[I]^, BitmapData.GetScanline(I)^, BitmapData.BytesPerLine); finally Unmap(BitmapData); end; end; end; В самом начале процедуры MaxSize получает значение 0 (ноль!), размеры картинки больше нуля и процедура влетает в бесконечный цикл на строке
AssignFromSurface (ResampledSurface);

Valaki szembe? Van ötlete, hogyan kell kezelni?
Köszönöm mindenkinek!

Jó napot kívánok. Szükség volt, hogy megoldja a következő problémát: a MySQL adatbázis tábla tartalmaz egy listát a képek és az URL. Meg kell, hogy a lista tömb. Ezután töltse fel a képeket, és váltakozó időközönként mutatni azokat TImage.
Megértem, hogy kap egy listát a megfelelő képeket PHP script, de milyen formában nyikorgó vissza kell térnie az adatokat Delphi, hogy egy sor rájuk, nem tudom.
Korábban, hogy képeket készít az ilyen eljárást. De a kérdés az, hogy hol tárolja a képet, mielőtt azok megjelennének TImage? Készítsen több MemoryStream?
eljárás LoadWebImage (url: string; image: TBitmap);
var
idhttp. TNetHTTPClient;
ms. TMemoryStream;
kezdődik
IdHTTP: = TNetHTTPClient.Create (nulla);
ms: = TMemoryStream.Create;
megpróbál
idhttp.Get (url, ms);
ms.Position: = 0;
image.LoadFromStream (ms);
végül
ms.Free;
idhttp.Free;
végén;
végén;

Hogyan lehet bekapcsolni a anti-aliasing élsimítást android - tűz majom tól Z-ig

Jó napot kívánok. Van egy probléma, amely már néhány hét nem tud kezelni. Van egy régi kód alatt WinAPI meg kell változtatni alatt Android keresztül firemonkey. És a fő probléma - van egy kód, amely a natív formátumban teszi HBITMAP származó WinAPI. Tény, hogy ez a struktúra, ahol az utolsó mező - egy mutatót a biteket. Ez könnyű megváltoztatni, hogy a saját példányát ezt a struktúrát. De most meg kell lefordítani egy TBitmap, és én nem igazán értem, hogyan kell csinálni.

Hogyan lehet bekapcsolni a anti-aliasing élsimítást android - tűz majom tól Z-ig

Jó napot! Mondd, hogy tudod, hogy az eredeti mérete a kép betöltött TImage.

Hogyan lehet bekapcsolni a anti-aliasing élsimítást android - tűz majom tól Z-ig

Gyakran, amikor rajz a vásznon bittérkép módszert alkalmazzuk DrawBitmap, ahol, különösen, mint egy érv meg kell határoznia a téglalap régió a forrás (SrcRect) és a vevő (DestRect). Ezeket a téglalapokat felvételi formátum (Bal, Fel, Jobb, alsó).
Amikor meghatározza a SrcRect teljes bitmap egészében itt formuma és Osipova a könyvben találkoztam egy ilyen rekord:
RectF (0,0, ABitmap.Width, ABitmap.Height) De a logika azt diktálja, hogy ez legyen a méret a bitmap 1 pixel mind vízszintesen, mind függőlegesen több mint amilyen valójában, hiszen az első pixel koordinátái (0, 0) és az utolsó (ABitmap.Width, ABitmap.Height). Ez valószínűleg torzulásához vezet a bitmap jelenik meg a vásznon.
Azt gondolom, hogy amikor az egész rajz bitmap kell írni az alábbiak szerint:
RectF (0,0, ABitmap.Width-1, ABitmap.Height-1) Igazam van, vagy rossz? Ha nem, miért nem?

Helló, barátaim!
Prompt - amilyen gyorsan csak lehet, hogy meghatározzák a hiánya a kép, mint a TBitmap?
Ie - ott TBitmap. Ő sem töltött a kép (kép), vagy ő - teljesen fekete téglalap.
akkor megtudja, milyen módon -, hogy ez a kép? Ie - és nem abszolút fekete téglalap.
És ez azonosításához szükséges „azonnal” (viszonylag).
Előzetesen minden hálás a részvételt!
Ui Lehetőségeket, mint az, ami az alábbi - nem nyújt)) Szeretnék valami „gyorsan”! Még egyszer köszönöm!
funkció IsBitmapEmpty (BMP: TBitmap): Boole; var X, Y. egész; BmpData: TBitmapData; yAddr. integer; AlphaCount. integer; kezdődik Eredmény: = false; próbálja AlphaCount: = 0; Bmp.Map (TMapAccess.Read, BmpData); Y: = 0 Bmp.Height div 2 do kezdődik YAddr: = Y * Bmp.Height; X: = 0 Bmp.Width - 1 do, ha (PAlphaColorArray (BmpData.Data) ^ [YAddr + X] <> TAlphaColorRec.Null) és (PAlphaColorArray (BmpData.Data) ^ [YAddr + X] <> TAlphaColorRec.Black) Ezután kezdődik Inc (AlphaCount); break; végén; ha AlphaCount> 0 majd a szünet; végén; Végül Bmp.Unmap (BmpData); Eredmény: = AlphaCount = 0; végén; végén;

Delphi Seattle, Android 5.0.1
Generálja a képet scanline. A kimenet a kapott bitmap készül a vászon TImage, ami készült, mielőtt téglalap.
GlobalBitmap - Shaped tbitmap.
A ObjectPreviewImage.Bitmap.Canvas do kezdődik BeginScene; Tiszta (TAlphaColorRec.White); DRect: = TRectF.Create (0, 0, GlobalBitmap.Width + 8, GlobalBitmap.Height + 8); DrawRect (DRect, 0, 0, AllCorners, StealthForm.ObjectPreviewImage.AbsoluteOpacity); DRect: = TRectF.Create (0, 0, GlobalBitmap.Width, GlobalBitmap.Height); DrawBitmap (GlobalBitmap, DRect, TRectF.Create (2, 2, GlobalBitmap.Width + 2, GlobalBitmap.Height + 2), 1); EndScene; végén;
A probléma valójában mi - az Android-verziót a bal alsó keret „megette”. A Win32 változat mind kiváló. A kísérő képernyőképeket is jól látható.
Olvastam a dokumentációt, a Google a Google.

Mit csinálok rosszul? Vagy nem ismert buktatókat android rajz a vásznon?

Ui A kép ugyanaz, a szín egy adott régió nem alkalmazzák helyesen. Kirándulás túl humanoid szórakoztató. De ez Elbánok.
P.P.S. Már kitaláltam a színt - az Android kék és a vörös egy pixel kell fordítani. Ami a vásznon - nem működik semmilyen módon.
P

Most az oldalt 0 felhasználó

Nem ember nézi ezt az oldalt