Posts

Showing posts from September, 2015

Pass byte array from C# to C++ and vice-versa

Pass byte array from C# to C++                          If you want to pass a byte array to native DLL as parameter, you can use the Intptr to do this, please check the demo below.
/C++ API code: TestDLL_API voidTestArrayPara(BYTE * pArray, int nSize) { for (int i=0; i<nSize; i++) printf("%d\n", pArray[i]); } //C# code:classTestClass { [DllImport(@"TestDll.dll")]publicstaticexternvoidTestArrayPara(IntPtr pArray, int nSize); publicstaticvoidTest() { byte[] array = newbyte[16]; for (int i = 0; i < 16; i++) { array[i] = (byte)(i + 97); } int size = Marshal.SizeOf(array[0]) * array.Length; IntPtr pnt = Marshal.AllocHGlobal(size); try { // Copy the array to unmanaged memory. Marshal.Copy(array, 0, pnt, array.Length); } finally {…

Some image operations in C#.NET

Flip ImageUsing the Image.RotateFlip method, we can rotate the image by 90/180/270-degrees or flip the image horizontally or vertically. The parameter of RotateFlip is System.Drawing.RotateFlipType, which specifies the type of rotation and flip to apply to the image. Code Snippet:

//Specifies a 180-degree rotation without flipping
pictureBox1.Image.RotateFlip(RotateFlipType.Rotate180FlipNone);
//Specifies no rotation followed by a horizontal flip
pictureBox1.Image.RotateFlip(RotateFlipType.RotateNoneFlipX);

//Specifies a 90-degree rotation followed by a horizontal and vertical flip pictureBox1.Image.RotateFlip(RotateFlipType.Rotate90FlipXY);

Join Two Images
Bitmap bitmap = new Bitmap(image1.Width + image2.Width, Math.Max(image1.Height, image2.Height));
    using (Graphics g = Graphics.FromImage(bitmap))
    {
        g.DrawImage(image1, 0, 0);
        g.DrawImage(image2, image1.Width, 0);
    }


Convert Bitmap to byte[] and vice-versa using C#Here is the function to convert bitmap to byte[] in C#…

Convert Bitmap to byte[] and vice-versa using C#

Here is the function to convert bitmap to byte[] in C# using ImageConverter class. ImageConverter class is present in System.Drawing.dll.


public static byte[] BitmapToByteArray(Bitmap bitmap)
        {
            ImageConverter converter = new ImageConverter();
            return (byte[])converter.ConvertTo(bitmap, typeof(byte[]));

        }

Here is the code to convert byte[] to bitmap in C#

public static Bitmap ByteArrayToBitMap(byte[] imageData)
        {
Bitmap bmp;
            using (var ms = new MemoryStream(imageData)){
            bmp = new Bitmap(ms);}  
                     return bmp;         }