मैं अल्फा-पारदर्शी आयत और अल्फा-पारदर्शी छवियों के साथ काफी जटिल छवियों को आकर्षित करना चाहता हूं। There is GDI+ wrapper from Mitov, लेकिन ऐसा लगता है कि यह 32 बिट बीएमपी फाइलों का समर्थन नहीं करता है और यह उन्हें बचाता है और दस्तावेज़ीकरण भयानक है। बीएमपी पीएनजी की तुलना में तेज़ तरीके से हैं इसलिए मैं उनका उपयोग करना चाहता हूं। There is SynGDI wrapper of GDI+, लेकिन यह बहुत बुनियादी लगता है और इसके लिए कोई दस्तावेज नहीं है। वहाँ भी GDI के लिए इस चाल है:डेल्फी में अल्फा पारदर्शिता के साथ पारदर्शी कैसे आकर्षित करें?
procedure DrawAlphaAPI(Source: TBitmap; Destination: TCanvas;
const X, Y: Integer; const Opacity: Byte = 255);
var BlendFunc: TBlendFunction;
begin
BlendFunc.BlendOp := AC_SRC_OVER;
BlendFunc.BlendFlags := 0;
BlendFunc.SourceConstantAlpha := Opacity;
if Source.PixelFormat = pf32bit then
BlendFunc.AlphaFormat := AC_SRC_ALPHA
else
BlendFunc.AlphaFormat := 0;
Windows.AlphaBlend(Destination.Handle, X, Y, Source.Width, Source.Height,
Source.Canvas.Handle, 0, 0, Source.Width, Source.Height, BlendFunc);
end;
लेकिन जब मैं अस्पष्टता = 255 से कॉल करने की यह 32 बिट बिटमैप ड्रॉ ठीक से नहीं (कुछ की तरह वे आधा पारदर्शी होते हैं, जहां वे पूरी तरह से होना चाहिए)। मैं पिक्सेल पारदर्शी बनाने के लिए स्कैनलाइन का उपयोग नहीं करना चाहता क्योंकि यह इस तरह के सभी पारदर्शी आयतों को आकर्षित करने के लिए बहुत जटिल होगा। मैं भी आधुनिक कंप्यूटर पर पतला जीडीआई + तेज होना चाहिए, क्या मैं सही हूँ?
तो सवाल यह है: कैसे एक अल्फा पारदर्शी आयत और आसानी से बिटमैप (कोड की टन के बिना) आकर्षित करने के लिए?
पसंदीदा डेल्फी: 7. मैं भी 2005 और XE3 है, लेकिन मैं सबसे 7 से काम करने के लिए कुछ चाहते हैं के बाद से 7 गति दानव है।
आप इस्तेमाल कर सकते हैं, तो [ 'इस wrapper'] (http://www.bilsen.com/gdiplus/index.shtml) डेल्फी 2009 तक का समर्थन करता है, जो आप [' कोड लिख सकते हैं इस तरह की]] (http://pastebin.com/fcjtHKen) जो काफी जटिल दिखता है, लेकिन आपको यह जानना होगा कि आप ['रंग समायोजन'] को संशोधित कर सकते हैं (http://www.codeproject.com/Articles/3772/रंगमेट्रिक्स-मूलभूत-सरल-छवि-रंग-समायोजन) उस रंग मैट्रिक्स के साथ और यह कि मैं उस कोड में अल्फा मिश्रित होने के लिए फ़ाइल लोड कर रहा हूं (उदाहरण के लिए आप पास किए गए 'TBitmap' ऑब्जेक्ट से 'GPBitmap' बना सकते हैं)। – TLama
@TLama धन्यवाद, यह एक जीडीआई + अब तक का सबसे अच्छा लगता है। दूसरा क्रोधित हैं। प्रोग्डिगी में से एक संकलित नहीं करता है (7, न ही 2005 और न ही XE3), मिटोव में से एक उन्हें चित्रित करने के बाद छवियों को नष्ट कर देता है, सिनोप्स से एक अधूरा है। – Tom
एफडब्ल्यूआईडब्लू: मैंने पाया [इन लेखों] (http://itinerantdeveloper.blogspot.de/search/label/alpha%20transparency) काफी रोचक। –