Skip to main content

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 void TestArrayPara (BYTE * pArray, int nSize) { for ( int i= 0 ; i<nSize; i++) printf( "%d\n" , pArray[i]); } //C# code: class TestClass { [DllImport(@"TestDll.dll")] public static extern void TestArrayPara (IntPtr pArray, int nSize); public static void Test () { byte [] array = new byte [ 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

Some image operations in C#.NET

Flip Image Using 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 t

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;         }