我试图在相机应用程序中提供缩放功能,为此我使用的是MediaCapture类,除缩放之外,MediaCapture的所有其他功能都正常工作,我使用以下代码来实现缩放:
private void zoomSlider_ValueChanged(object sender, Windows.UI.Xaml.Controls.Primitives.RangeBaseValueChangedEventArgs e)
{
m_mediaCaptureMgr.VideoDeviceController.Zoom.TrySetValue(zoomSlider.Value);
}但这不管用,请告诉我怎么做??
编辑:代码格式更正
发布于 2012-07-21 06:02:34
在XAML中,你也可以像这样缩放相机视图。
<CaptureElement x:Name="previewElement1" Width="1366" Height="672">
<CaptureElement.RenderTransform>
<ScaleTransform x:Name="zoom"/>
</CaptureElement.RenderTransform>
</CaptureElement>
<Slider Width="30" Height="300" Name="zoomSlider" ValueChanged="zoomSlider_ValueChanged_1" />在C#中
private void zoomSlider_ValueChanged_1(object sender, Windows.UI.Xaml.Controls.Primitives.RangeBaseValueChangedEventArgs e)
{
try
{
zoom.ScaleX = zoomSlider.Value;
zoom.ScaleY = zoomSlider.Value;
zoom.CenterX = 683;
zoom.CenterY = 384;
}
catch (Exception)
{
}
}发布于 2014-12-30 21:09:29
<ScaleTransform>不修改相机的缩放。它只是放大了图像,所以您将看到相同的图像更像素化。
相机的变焦由ZoomControl类控制。它位于MediaCapture类中。
示例:Slider元素更改相机的缩放。
<CaptureElement x:Name="captureElement"
Stretch="UniformToFill" />
<Slider x:Name="sliderZoom"
Width="250"
ValueChanged="sliderZoom_ValueChanged"/>Slider的配置
MediaCapture _mediaCapture;
// Initialization of the MediaCapture ...
if(this._mediaCapture.VideoDeviceController.ZoomControl.Supported)
{
sliderZoom.Minimum = this._mediaCapture.VideoDeviceController.ZoomControl.Min;
sliderZoom.Maximum = this._mediaCapture.VideoDeviceController.ZoomControl.Max;
sliderZoom.StepFrequency = this._mediaCapture.VideoDeviceController.ZoomControl.Step;
}当Slider更改其值时,修改相机的缩放:
private void sliderZoom_ValueChanged(object sender, RangeBaseValueChangedEventArgs e)
{
if(this._mediaCapture.VideoDeviceController.ZoomControl.Supported)
{
this._mediaCapture.VideoDeviceController.ZoomControl.Value = (float)e.NewValue;
}
}如果StepFrequency不等于ZoomControl.Step,则在试图修改缩放时将显示此错误:
An exception of type 'System.ArgumentException' occurred in ....exe but was not handled in user code
WinRT information: Zoom factor
Additional information: The parameter is incorrect.https://stackoverflow.com/questions/11559484
复制相似问题