【发布时间】:2014-07-08 09:35:05
【问题描述】:
我正在开发一个 Windows phone 8 聊天应用程序。我需要能够发送图像。我能够发送低分辨率的图像,但是当我尝试发送高分辨率图像 (10240 x 6400) 时,结果图像不是我所期望的。 和 。如您所见,仅显示了图像的一部分,而其余区域为灰色。我认为问题在于我如何裁剪和/或重新调整图像大小。我正在将我的图像转换为 WriteableBitmap 对象并在此方法中调整它的大小。参数requiredImageSize = 800。
private WriteableBitmap ResizeLargeWriteableBitmapImage(WriteableBitmap bitmap, int requiredImageSize)
{
WriteableBitmap resized;
int tnWidth = 0;
int tnHeight = 0;
if (bitmap.PixelWidth >= bitmap.PixelHeight)
{
if (bitmap.PixelWidth <= requiredImageSize)
tnWidth = bitmap.PixelWidth;
else
tnWidth = requiredImageSize;
}
else if (bitmap.PixelHeight >= bitmap.PixelWidth)
{
if (bitmap.PixelHeight <= requiredImageSize)
tnHeight = bitmap.PixelHeight;
else
tnHeight = requiredImageSize;
}
if (tnWidth > 0)
{
tnHeight = (bitmap.PixelHeight * tnWidth) / bitmap.PixelWidth;
}
else if (tnHeight > 0)
{
tnWidth = (bitmap.PixelWidth * tnHeight) / bitmap.PixelHeight;
}
resized = bitmap.Resize(tnWidth, tnHeight, WriteableBitmapExtensions.Interpolation.Bilinear);
return resized;
}
我将 WriteableBitmap 对象保存为 JPEG 图像
writableImage.SaveJpeg(msThumbnailImage, writableImage.PixelWidth, writableImage.PixelHeight, 0, 100);
然后我将图像保存到本地存储并显示它(正如我之前所说的那样显示它)。为什么会这样。我在代码中做错了吗?
【问题讨论】:
标签: windows-phone-8 image-resizing writeablebitmap