[Mono-dev] Remoting IplImage/Bitmap return type problem

buhochileno at gmail.com buhochileno at gmail.com
Sat Nov 24 23:10:48 EST 2007

Thanks Euan, I do the stream/byte[] sugestion and work perfectly, now
I'm going to try to do something like that with the opencv iplimage format.



Euan MacInnes wrote:
> Hi Mauricio,
>      One option to do this is to extract the bitmap as a series of bytes, and then stream the byte array across.
> given a bitmap called "mybitmap"
> MemoryStream ms = New MemoryStream();
> mybitmap.Save(ms,  ImageFormat.Jpeg);  // Save it as Jpeg if you don't mind it being compressed
> then you can either serialise the stream, or convert to an array of bytes and send that: 
> byte[] picBuf = ms.GetBuffer();
> Cheers,
> Euan.
> ----------------------------------------
>> Date: Sat, 24 Nov 2007 20:12:15 -0300
>> From: buhochileno at gmail.com
>> To: mono-devel-list at lists.ximian.com
>> Subject: [Mono-dev] Remoting IplImage/Bitmap return type problem
>> Hi:
>> I still have my problem about how to get the remoting object picture 
>> from a client. First I try to make a property and a method to return a 
>> Bitmap, but finally I only get "some class/type is not marked as 
>> Serializable...", and now I try to use a IplImage from a basic OpenCv 
>> implementation that I have for mono based on the SharpCV wrapper (yes, 
>> the wrapper use IntPtr and DllImport native calls :-S. With my IplImage 
>> test I allmost succed, in the client side I can make the asignation to a 
>> local copy of the image, something like this:
>> CvImage frame = remOrbitKit.Video.LastIplFrame; //-> this is the remote 
>> object property that return a "CvImage" picture type
>> ..this work...
>> ..but if I later try to show the image the applicatio crash with this:
>> Unhandled Exception: System.NotSupportedException: Unsupported primitive 
>> type: System.IntPtr
>> Server stack trace:
>>   at 
>> System.Runtime.Serialization.Formatters.Binary.ObjectWriter.WritePrimitiveValue 
>> (System.IO.BinaryWriter writer, System.Object value) [0x001b4] in 
>> /mnt/data/opt/mcs/class/corlib/System.Runtime.Serialization.Formatters.Binary/ObjectWriter.cs:898
>>   at 
>> System.Runtime.Serialization.Formatters.Binary.MessageFormatter.WriteMethodResponse 
>> (System.IO.BinaryWriter writer, System.Object obj, 
>> System.Runtime.Remoting.Messaging.Header[] headers, ISurrogateSelector 
>> surrogateSelector, StreamingContext context, FormatterAssemblyStyle 
>> assemblyFormat, FormatterTypeStyle typeFormat) [0x00191] in 
>> /mnt/data/opt/mcs/class/corlib/System.Runtime.Serialization.Formatters.Binary/MessageFormatter.cs:237
>>   at 
>> System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize 
>> (System.IO.Stream serializationStream, System.Object graph, 
>> System.Runtime.Remoting.Messaging.Header[] headers) [0x00061] in 
>> /mnt/data/opt/mcs/class/corlib/System.Runtime.Serialization.Formatters.Binary/BinaryFormatter.cs:226
>> I know that this may sound to a specific opencv or image question, but I 
>> only want to know how can I traslate picture information with remoting, 
>> I also know that may be this is not recomended due the large amount of 
>> binary info..but I only need this for test porpuses, so bitmap, mpeg, 
>> jpg, other streaming approach??.
>> in advance, thank you very much.
>> Mauricio
>> _______________________________________________
>> Mono-devel-list mailing list
>> Mono-devel-list at lists.ximian.com
>> http://lists.ximian.com/mailman/listinfo/mono-devel-list

More information about the Mono-devel-list mailing list