17

UIImage をバイト配列に変換する必要があります。Xamarin の Visual Studio プラグインを使用して iOS アプリケーションを作成しています。

以下のコードはイメージを取得しますが、UIImage ではなくバイト配列としてサービス スタック全体に送信する必要があります。

        var signatureView = new SignaturePad.SignaturePadView(new RectangleF(10, 660, 300, 150));
        signatureView.BackgroundColor = UIColor.White;
        this.View.AddSubview(signatureView);
        UIImage signatureImage = signatureView.GetImage();
4

3 に答える 3

29

ChrisNTRから恥知らずに盗まれた

using (NSData imageData = image.AsPNG()) {
  Byte[] myByteArray = new Byte[imageData.Length];
  System.Runtime.InteropServices.Marshal.Copy(imageData.Bytes, myByteArray, 0, Convert.ToInt32(imageData.Length));
}
于 2013-06-14T20:55:08.010 に答える
16

ServiceStack API を確認してから長い時間が経ちましたが、同じデータの別のコピーを作成する必要があるため、可能であれば回避してください。byte[]多くの場合は問題になりませんが、画像はしばしば巨大です。

たとえば、を受け入れるオーバーロードがある場合は、オーバーヘッドSystem.IO.Streamを使用image.AsPNG ().AsStream ()して回避します:-)

于 2013-06-14T23:10:01.383 に答える