我正在Windows Phone 8.1上开发基于隐写DCT的方法。 我真的很高兴最终有一个API用于发送带有附件的电子邮件,这些电子邮件在Windows Phone 7 - 8中丢失了。我开始创建一种发送带有JPEG图像的电子邮件的方法,我对以下内容感到困惑。
我创建了具有修改DCT系数的停滞JPEG图像,我想通过电子邮件发送图像。
所以我在MSDN页面中使用以下示例:
private async void ComposeEmail(Windows.ApplicationModel.Contacts.Contact recipient,
string messageBody,
StorageFile attachmentFile)
{
var emailMessage = new Windows.ApplicationModel.Email.EmailMessage();
emailMessage.Body = messageBody;
if (attachmentFile != null)
{
var stream = Windows.Storage.Streams.RandomAccessStreamReference.CreateFromFile(attachmentFile);
var attachment = new Windows.ApplicationModel.Email.EmailAttachment(
attachmentFile.Name,
stream);
emailMessage.Attachments.Add(attachment);
}
var email = recipient.Emails.FirstOrDefault<Windows.ApplicationModel.Contacts.ContactEmail>();
if (email != null)
{
var emailRecipient = new Windows.ApplicationModel.Email.EmailRecipient(email.Address);
emailMessage.To.Add(emailRecipient);
}
await Windows.ApplicationModel.Email.EmailManager.ShowComposeNewEmailAsync(emailMessage);
}
发送了JPEG图像,但由于DCT系数发生了变化,它似乎被重新压缩了。从本地应用程序存储区读取文件后,我无法确定DCT系数是否已更改为RandomAccessStreamReference或Windows Phone 8.1的电子邮件API。
但肯定会有某些东西以某种方式修改JPEG。
是否有解决方法如何发送原始JPEG图像?也许有一种方法如何在不使用RandomAccessStreamReference的情况下发送JPEG图像的原始字节?