안녕하세요 여러분, 왜 이미지가 올바르게 렌더링되지 않는지 이해할 수 없습니다. 다음은 XAML :writablebitmap 렌더링 나쁜 이미지
이유 : 내가 여기에 이미지
private async void FilterPage_Loaded(object sender, RoutedEventArgs e)
{
System.Windows.Size screenSize = ResolutionHelper.ScreenResolution;
Windows.Foundation.Size photoSize = await GetImageSizeAsync();
double scale = 1;
if (this.Orientation == PageOrientation.PortraitUp)
{
if (photoSize.Width > photoSize.Height)
{
scale = screenSize.Width/photoSize.Width;
}
else
{
scale = screenSize.Height/photoSize.Height;
}
}
this._dimensionsPhoto.Width = (photoSize.Width * scale) - 6;
this._dimensionsPhoto.Height = (photoSize.Height * scale) - 6;
//this.ImgChosenPhoto.Height = (int)this._dimensionsPhoto.Height;
//this.ImgChosenPhoto.Width = (int)this._dimensionsPhoto.Width;
WriteableBitmap writeableBitmap = new WriteableBitmap((int)this._dimensionsPhoto.Height, (int)this._dimensionsPhoto.Width);
await App.PhotoModel.RenderBitmapAsync(writeableBitmap);
this.ImgChosenPhoto.Source = writeableBitmap;
}
public async Task RenderBitmapAsync(WriteableBitmap bitmap)
{
using (BufferImageSource source = new BufferImageSource(_buffer))
using (FilterEffect effect = new FilterEffect(source) { Filters = this._components })
using (WriteableBitmapRenderer renderer = new WriteableBitmapRenderer(effect, bitmap))
{
await renderer.RenderAsync();
bitmap.Invalidate();
}
}
결과를 렌더링 방법은 다음과
<Canvas x:Name="CanvasLayout" Grid.Row="0" Grid.Column="0"
VerticalAlignment="Center" Width="{Binding ActualWidth, ElementName=LayoutRoot, Mode=OneWay}"
Height="{Binding ActualHeight, ElementName=LayoutRoot, Mode=OneWay}">
<Border Background="Red" BorderBrush="Yellow" BorderThickness="3" Margin="0" >
<Image x:Name="ImgChosenPhoto" Stretch="UniformToFill" Canvas.ZIndex="1" />
</Border>
</Canvas>
(스크린 샷은 내 루미아 925을 형성)? 어떤 여백도 설정하지 않았습니다 ... 아무 것도 ...
처음에는 이미지가 오른쪽으로 렌더링된다는 것을 알 수 있습니다 ... 노란색 테두리를 볼 수 없으므로 이미지 컨트롤 오버플로와 같습니다. 화면 ... 오른쪽 테두리가 50 픽셀에 대해 그리워 .. 화면의 끝 부분에없는 두 번째에서 ... 당신의 도움을
고맙습니다 ...
원하는 결과는 무엇입니까? 첫 번째 스크린 샷과 두 번째 스크린 샷의 코드 차이점은 무엇입니까? –
안녕하세요 ... 첫 번째 스크린 샷은 세로 이미지입니다 ... 두 번째 이미지는 가로 이미지입니다 ... 결과는 화면의 이미지 크기를 조정하면서 이미지를 렌더링하려는 것입니다. 이미지의 크기가 조정되지만 이미지 컨트롤처럼 보이지 않습니다! (이미지 컨트롤은 ywllow 테두리가있는 빨간색 직사각형입니다.) 왜 그 크기인지 이해하지 못합니다! – Ciccio
캔버스 대신 그리드에 배치하는 방법은 늘어납니다. –