Exemple #1
0
        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);
             }
         }
     }
 }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
            }
        }
Exemple #5
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);
            }
        }
Exemple #6
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);
            }
        }