Hejsa
jeg har nogle problemer med BitBlt og er sgu ved at ryge på gak gak , hvis ikke jeg finder ud af hvad der foregår.
Jeg har 2 billeder(24bit) , et hvor der er grønne og sorte områder og et hvor der er røde og sorte områder. Jeg forsøger at bruge srcPaint således at
farverne bliver OR'et sammen . ex. grøn og rød bliver til gul og sort ændre ikke farven (da den jo er værdien 0)
jeg forstår ikke
1) hvorfor bliver resultatet forskelligt , afhængigt hvilke billed jeg bruger som dest og hvilke jeg bruger som source.
som nu , hvis jeg f.ex bruger rød/sort billed som dest og grøn/sort som source .. så bliver de områder hvor der f.ex er sort på source og rød på dest , rigtige , men der hvor source ikke er sort , overskriver den bare dest billed og laver ikke en OR af farvebit'ne
Hvis det vil hjælpe kan jeg oploade nogle billeder.
edit:
ps , ang det point halløj , den forstod jeg ikke helt , så beklager der ikke er point på emnet. Kan jeg ændre det ?
På forhånd tak
Icekiller
//gm er dest billed og bs er source
public void MergeImage(ref Graphics gm,ref Bitmap bs)
{
/* Get a Handle to the target DC */
IntPtr ptrDst = gm.GetHdc();
/* Create a new In-Memory DC which is compatible to the specified one */
IntPtr ptrSrc = CreateCompatibleDC(ptrDst);
/* Select the Handle from the Bitmap into our Source Pointer */
SelectObject(ptrSrc, bs.GetHbitmap());
Boolean rc = BitBlt(ptrDst, 0, 0, bs.Width, bs.Height, ptrSrc, 0, 0, TernaryRasterOperations.SRCPAINT);
if (!rc) throw new Exception("hrmm");
/* Delete the Handle and Release all Resources */
DeleteObject(ptrSrc);
gm.ReleaseHdc(ptrDst);
}
Indlæg senest redigeret d. 19.08.2008 13:01 af Bruger #14094