내 빙의 이미지 잠금을 위해 배경의 빙 화상을 사용하고 싶지만 이미지를 가져 오는 데 문제가 있습니다. 바람직하게는 1080p 장치에서1080p Windows Phone에서 잠금 화면 이미지가되도록 1920 * 1080p 사진 조정
이것은 오늘의 1080p 빙 이미지의 예입니다 : http://www.bing.com//az/hprichbg/rb/BeaverMeadow_EN-US12190942812_1920x1080.jpg. 그것은 1920 * 1080 사진입니다. 당연히
public static void SaveToJpeg(Stream stream)
{
using (IsolatedStorageFile iso = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream isostream = iso.CreateFile("lockscreen.jpg"))
{
try
{
BitmapImage bitmap = new BitmapImage();
bitmap.SetSource(stream);
WriteableBitmap wb = new WriteableBitmap(bitmap);
// Cropping image so that only 1080 out of the 1920 horizontal pixels are used.
wb = CropImage(wb, 1080, 1920, 1080, 1080);
// 1080 * 1920 are the phone's dimesions.
Extensions.SaveJpeg(wb, isostream, 1080, 1920, 0, 100);
isostream.Close();
}
catch(Exception e)
{
}
}
}
}
public static WriteableBitmap CropImage(WriteableBitmap source, int phoneWidth, int phoneHeight,
int width, int height)
{
// Based on the phone's width/height and image's width/height, will determine
// the correct x and y offsets.
int xOffset = 0, yOffset = 0;
if(phoneWidth >= source.PixelWidth)
{
xOffset = 0;
}
else
{
xOffset = source.PixelWidth - phoneWidth;
xOffset = xOffset/2 + xOffset/4;
}
if (phoneHeight >= height)
{
yOffset = 0;
}
else
{
yOffset = height - phoneHeight;
yOffset = yOffset/2;
}
var sourceWidth = source.PixelWidth;
// Get the resultant image as WriteableBitmap with specified size
var result = new WriteableBitmap(width, height);
// Create the array of bytes
for (var x = 0; x <= height - 1; x++)
{
var sourceIndex = xOffset + (yOffset + x) * sourceWidth;
var destinationIndex = x * width;
Array.Copy(source.Pixels, sourceIndex, result.Pixels, destinationIndex, width);
}
return result;
}
: 코드입니다 제가 사용하고 사진 1080 * 1080 픽셀이며, 다음 1080 * 1920이있어 새로운 잠금 화면 이미지를 만들 수 있도록
내가하는 일은 작물이있다 , 빙 이미지의 높이가 (1920이 아닌) 1080 픽셀 주어진이 잠금 화면이 보이는 것입니다 같은 : 예, 잠금 화면 이미지에서 생성되는 사용자 정의 사용자 정의 컨트롤이
그리고, 그것의 그리드 배경 이미지는 fi로 뻗어있다. ll :
<Grid.Background>
<ImageBrush
x:Name="Background"
Stretch="Fill"/>
</Grid.Background>
화면을 우아하게 채우려면 빙 이미지를 얻으려면 어떻게해야합니까? 즉, 1080p 휴대 전화의 크기와 일치시키기 위해 원래 이미지의 크기를 과다하게 (픽셀 화)하고 싶지 않습니다.
업데이트 : 오늘의 빙 이미지 (즉, 1080p 휴대 전화의 잠금 화면의 정확한 크기)에 대한 대안 1080 x 1920 사진을 발견했습니다 : http://www.bing.com//az/hprichbg/rb/BeaverMeadow_EN-US12190942812_1080x1920.jpg.
그러나 근본적인 문제를 해결하는 것으로 보이지는 않습니다 (참고 :이 이미지에서 아무 것도 자르지 않고 치수가 완벽하기 때문에이 이미지를 그대로 사용합니다). 아래를 참조