private void button3_Click(object sender, EventArgs e) { using (Bitmap src = new Bitmap("d:\\WImageTest\\L01.png")) using (LockBmp srcLock = src.Lock()) using (Bitmap dest = new Bitmap(400, 500)) using (LockBmp dstLock = dest.Lock()) { BitmapBuffer dstWb = dstLock.CreateNewBitmapBuffer(); BitmapBuffer srcWb = srcLock.CreateNewBitmapBuffer(); int y = 0; dstWb.Clear(BitmapBufferEx.ColorInt.FromArgb(255, 255, 255, 255)); dstWb.Blit(new RectD(10, 10, src.Width, src.Height), srcWb, new RectD(0, 0, src.Width, src.Height), BitmapBufferExtensions.BlendMode.None ); dstWb.Blit(new RectD(100, 100, src.Width * 2, src.Height * 2), srcWb, new RectD(0, 0, src.Width, src.Height), BitmapBufferExtensions.BlendMode.None ); dstLock.WriteAndUnlock(); dest.Save("d:\\WImageTest\\a0004.png"); } }
public void Update(double elapsedSeconds) { elapsedRemainder += elapsedSeconds; while (elapsedRemainder > updateInterval) { elapsedRemainder -= updateInterval; CreateParticle(); particleColor.H += .1; particleColor.H = particleColor.H % 255; for (int i = Particles.Count - 1; i >= 0; i--) { Particle p = Particles[i]; p.Update(updateInterval); if (p.Color.A == 0) { Particles.Remove(p); } } } using (TargetBitmap.GetBitmapContext()) { using (ParticleBitmap.GetBitmapContext(ReadWriteMode.ReadOnly)) { for (int i = 0; i < Particles.Count; i++) { Particle p = Particles[i]; TargetBitmap.Blit(p.Position, ParticleBitmap, sourceRect, p.Color, BitmapBufferExtensions.BlendMode.Additive); } } } }
public static BitmapBuffer Overlay(BitmapBuffer bmp, BitmapBuffer overlay, BitmapBufferEx.PointD location) { BitmapBuffer result = bmp.Clone(); var size = new BitmapBufferEx.SizeD(overlay.PixelWidth, overlay.PixelHeight); result.Blit(new BitmapBufferEx.RectD(location, size), overlay, new RectD(new BitmapBufferEx.PointD(0, 0), size), BitmapBufferExtensions.BlendMode.Multiply); return(result); }
private void button6_Click(object sender, EventArgs e) { BitmapBuffer unmodifiedBmp = LoadBitmapAsReadonly("../../02.jpg"); BitmapBuffer flipImg = unmodifiedBmp.RotateFree(20, false); using (LockBmp bmplock = destBmp.Lock()) { BitmapBuffer wb = bmplock.CreateNewBitmapBuffer(); wb.Clear(Colors.White); wb.Blit(new RectD(0, 0, flipImg.PixelWidth, flipImg.PixelHeight), flipImg, new RectD(0, 0, flipImg.PixelWidth, flipImg.PixelHeight)); bmplock.WriteAndUnlock(); g.Clear(System.Drawing.Color.White); g.DrawImage(destBmp, 0, 0); } }
private void button4_Click(object sender, EventArgs e) { BitmapBuffer unmodifiedBmp = LoadBitmapAsReadonly("../../02.jpg"); BitmapBuffer rotateBmp = unmodifiedBmp.Rotate(BitmapBufferExtensions.FastRotateAngle.Rotate270); using (LockBmp bmplock = destBmp.Lock()) { BitmapBuffer wb = bmplock.CreateNewBitmapBuffer(); wb.Clear(Colors.White); wb.Blit(new RectD(0, 0, rotateBmp.PixelWidth, rotateBmp.PixelHeight), rotateBmp, new RectD(0, 0, rotateBmp.PixelWidth, rotateBmp.PixelHeight)); bmplock.WriteAndUnlock(); g.Clear(System.Drawing.Color.White); g.DrawImage(destBmp, 0, 0); } }
private void button2_Click(object sender, EventArgs e) { BitmapBuffer unmodifiedBmp = LoadBitmapAsReadonly("../../02.jpg"); BitmapBuffer sticker = LoadBitmapAsReadonly("../../01.jpg"); BitmapBuffer overlayResult = Overlay(unmodifiedBmp, sticker, new BitmapBufferEx.PointD(10, 10)); using (LockBmp bmplock = destBmp.Lock()) { BitmapBuffer wb = bmplock.CreateNewBitmapBuffer(); wb.Clear(Colors.Black); wb.Blit(new RectD(0, 0, overlayResult.PixelWidth, overlayResult.PixelHeight), overlayResult, new RectD(0, 0, overlayResult.PixelWidth, overlayResult.PixelHeight)); bmplock.WriteAndUnlock(); g.Clear(System.Drawing.Color.White); g.DrawImage(destBmp, 0, 0); } }