C# · 12月 26, 2021

c# – 调整位图图像大小

我想要保存的图像尺寸更小.
如何调整大小?
我使用这个代码来重绘图像: Size size = new Size(surface.Width,surface.Height);surface.Measure(size);surface.Arrange(new Rect(size));// Create a render bitmap and push the surface to itRenderTargetBitmap renderBitmap = new RenderTargetBitmap( (int)size.Width,(int)size.Height,96d,PixelFormats.Default);renderBitmap.Render(surface);BmpBitmapEncoder encoder = new BmpBitmapEncoder();// push the rendered bitmap to itencoder.Frames.Add(BitmapFrame.Create(renderBitmap));// save the data to the streamencoder.Save(outStream);解决方法 您的“表面”视觉是否具有缩放能力?您可以将它包装在一个View@R_837_2419@中,如果没有,然后渲染您想要的大小的View@R_837_2419@.

当您调用测量和排列表面时,您应该提供您想要位图的大小.

要使用View@R_837_2419@,请将代码更改为以下内容:

View@R_837_2419@ view@R_837_2419@ = new View@R_837_2419@();Size desiredSize = new Size(surface.Width / 2,surface.Height / 2);view@R_837_2419@.Child = surface;view@R_837_2419@.Measure(desiredSize);view@R_837_2419@.Arrange(new Rect(desiredSize));RenderTargetBitmap renderBitmap = new RenderTargetBitmap( (int)desiredSize.Width,(int)desiredSize.Height,PixelFormats.Default);renderBitmap.Render(view@R_837_2419@);