C# 将图片从应用发送到短信

C# 将图片从应用发送到短信,c#,visual-studio-2010,windows-phone-7,C#,Visual Studio 2010,Windows Phone 7,我创建了一个应用程序,可以让你在windows phone中拍摄照片并通过文字信息发送,但图像不会显示在信息中,而是显示图像控件的名称。那里没有照片 这是我的代码: void cameraCaptureTask_Completed(object sender, PhotoResult e) { if (e.TaskResult == TaskResult.OK) { System.Windows.Media.Imaging.

我创建了一个应用程序,可以让你在windows phone中拍摄照片并通过文字信息发送,但图像不会显示在信息中,而是显示图像控件的名称。那里没有照片

这是我的代码:

    void cameraCaptureTask_Completed(object sender, PhotoResult e)
    {
        if (e.TaskResult == TaskResult.OK)
        {
            System.Windows.Media.Imaging.BitmapImage bmp = new System.Windows.Media.Imaging.BitmapImage();
            bmp.SetSource(e.ChosenPhoto);
            myImage.Source = bmp;

        }
    }

myImage是保存拍摄图像的图像控件


我想我有办法转换它,但我想不出来。

你用的是短信,对吗?SMS是基于文本的,因此正在发生的是调用image对象的ToString方法。Windows Phone 7似乎不支持发送彩信。

您不能通过短信发送图片,因为:

但是,有必要将消息的长度限制为128 字节(后来改进为140字节,或160个七位字符),因此 消息可以适应现有的信令格式

首先,ToString()并非在所有情况下都表示“将任何内容转换为字符串”。您正在对Image.Source调用ToString(),因此预期的行为是它将显示“BitmapImage”

第二,通过文本发送图像需要彩信,但WindowsPhone7似乎没有彩信API。因此,您最好的选择是外部彩信服务(通常是付费的),而且它们通常都有自己的API

不过,请注意,彩信需要数据连接,所以您的最佳选择可能只是发送一封带有图像作为附件的电子邮件

您在“转换”图像方面有点含糊不清,如果您的程序同时在发送方和接收方上运行,则可能将图像编码为字符串,通过SMS发送,接收方将该字符串解码回图像。但是图像数据肯定很长,不适合短信息,而且这种方法过于复杂,所以我怀疑这是您想要的。

看一看

存在的java实现,因此如果要对其进行反向工程,可以在.NET中进行。但是图像太小(72x28像素)

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        SmsComposeTask smsComposeTask = new SmsComposeTask();
        smsComposeTask.Body = myImage.Source.ToString();
        smsComposeTask.Show();
    }