Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#/Xamarin摄像头插件_C#_Xamarin_Mobile - Fatal编程技术网

c#/Xamarin摄像头插件

c#/Xamarin摄像头插件,c#,xamarin,mobile,C#,Xamarin,Mobile,我正在学习C#,我正在尝试开发一个移动应用程序,用户可以在其中买卖东西。 用户可以添加广告,部分原因是他可以直接拍摄照片或从自己的图库中拍摄 我有一个完美的媒体插件,但我失败的是能够在添加页面上临时存储和显示图片。我的目标是,一旦用户将捕获一张显示为MainImage的图片,一旦他按下按钮,再次拍照,前一张图片将移动到MainImage2位置,依此类推。。主图像是最大的显示,因此一旦他捕捉到新图片,他将有机会决定是要做广告,还是要拍一张不同的图片 总的来说,他应该能够拍5张照片,并将它们展示在他

我正在学习C#,我正在尝试开发一个移动应用程序,用户可以在其中买卖东西。 用户可以添加广告,部分原因是他可以直接拍摄照片或从自己的图库中拍摄

我有一个完美的媒体插件,但我失败的是能够在添加页面上临时存储和显示图片。我的目标是,一旦用户将捕获一张显示为MainImage的图片,一旦他按下按钮,再次拍照,前一张图片将移动到MainImage2位置,依此类推。。主图像是最大的显示,因此一旦他捕捉到新图片,他将有机会决定是要做广告,还是要拍一张不同的图片

总的来说,他应该能够拍5张照片,并将它们展示在他的广告上

这是我的快速xaml:

<?xml version="1.0" encoding="utf-8" ?>
<CarouselPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:d="http://xamarin.com/schemas/2014/forms/design"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             mc:Ignorable="d"
             xmlns:controls="clr-namespace:Baltazar.Controls"
             xmlns:templates="clr-namespace:Baltazar.Views.Templates"
             xmlns:resources="clr-namespace:Baltazar.Resources"
             xmlns:helpers="clr-namespace:ImageCircle.Forms.Plugin.Abstractions;assembly=ImageCircle.Forms.Plugin"
              xmlns:local="clr-namespace:Baltazar.Views"
              x:Class="Baltazar.Views.AddingPage">
    <ContentPage BackgroundColor="{ StaticResource BackgroundColor }">

        <ContentPage.Content>
            <StackLayout Spacing="-1">
                <Grid Grid.Row="0"  VerticalOptions="Start"  RowSpacing="0">
                    <!--ToolBar-->
                    <Grid.RowDefinitions>
                        <RowDefinition Height="50"/>
                        <RowDefinition Height="*"/>
                    </Grid.RowDefinitions>
                    <templates:HeaderItem Grid.Row="0"></templates:HeaderItem>
                    <AbsoluteLayout Grid.Row="0">
                        <!--Notifications-->
                        <Image Source ="{DynamicResource Notificatons}"
                           AbsoluteLayout.LayoutBounds="0.95,0.40,30,30" 
                           AbsoluteLayout.LayoutFlags="XProportional,YProportional" 
                           BackgroundColor= "Transparent">
                        </Image>
                    </AbsoluteLayout>
                </Grid>
                <Grid Grid.Row="1" RowSpacing="5" Padding="20,0,20,10">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="200"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>

                    </Grid.RowDefinitions>
                    <ProgressBar Grid.Row="0" IsVisible="True" BackgroundColor="Black" VerticalOptions="Start" HorizontalOptions="Center"/>
                    <Frame Padding="20,15,20,5" Grid.Row="1"  HasShadow="True" HeightRequest="140" WidthRequest="100">
                        <Image x:Name="MainImage" Grid.Row="1"/>

                    </Frame>

                    <Grid Grid.Row="2" Padding="0,10,0,0">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition Width="Auto"/>

                        </Grid.ColumnDefinitions>
                        <Frame HeightRequest="40" WidthRequest="43" Grid.Column="0">
                            <Image x:Name="MainImage1" Grid.Column="0"/>
                        </Frame>
                        <Frame HeightRequest="40" WidthRequest="43" Grid.Column="1">
                            <Image x:Name="retSource"  Grid.Column="1"/>
                        </Frame>
                        <Frame HeightRequest="40" WidthRequest="43" Grid.Column="2">
                            <Image x:Name="MainImage3" Grid.Column="2"/>
                        </Frame>
                        <Frame HeightRequest="40" WidthRequest="43" Grid.Column="3">
                            <Image x:Name="MainImage4" Grid.Column="3"/>
                        </Frame>
                        <Frame HeightRequest="40" WidthRequest="43"  Grid.Column="4">
                            <Image x:Name="MainImage5" Grid.Column="4"/>
                        </Frame>
                    </Grid>
                    <Grid Grid.Row="3" Padding="20,20,20,10">
                        <Grid.RowDefinitions>
                            <RowDefinition Height ="Auto"/>
                            <RowDefinition Height ="Auto"/>

                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition Width="Auto"/>
                        </Grid.ColumnDefinitions>
                        <Button Grid.Row="0" Grid.Column="0" Style ="{StaticResource SecondaryButton}" Text="{x:Static resources:LabelCZ.ButtonTakePicture}" Clicked="TakePicture_Clicked"/>
                        <Button Grid.Row="0" Grid.Column="1" Style ="{StaticResource SecondaryButton}"  Text="{x:Static resources:LabelCZ.ButtonUploadPhoto}" Clicked="UploadPhoto_Clicked" />
                        <Button Grid.Row="1" Grid.Column="0" Style ="{StaticResource SecondaryButton}" Text="{x:Static resources:LabelCZ.ButtonTakeVideo}" Clicked="TakeVideo_Clicked" />
                        <Button Grid.Row="1" Grid.Column="1" Style ="{StaticResource SecondaryButton}" Text="{x:Static resources:LabelCZ.ButtonUploadVideo}" Clicked="UploadVideo_Clicked" />
                    </Grid>

                </Grid>
            </StackLayout>


        </ContentPage.Content>

    </ContentPage>

</CarouselPage>

我的问题是,如果你能为我指出正确的方向,如何做到这一点

首先,您可以拥有一个模型:

public class User
{
   public int Id {get; set;}
   public string Name{get; set;}
   public List<Picture> Pictures{get; set;}
}

public class Picture
{
    public string Id {get; set;}
    public string Url{get; set;}
    public byte[] Image{get; set;}
}
公共类用户
{
公共int Id{get;set;}
公共字符串名称{get;set;}
公共列表图片{get;set;}
}
公开课图片
{
公共字符串Id{get;set;}
公共字符串Url{get;set;}
公共字节[]映像{get;set;}
}
现在,您可以拥有一个带有
字节[]
的图片列表,通过该列表,您可以临时显示这些图片。拍摄完照片后,将图像添加到图片列表并更新UI(您可以使用MVVM模式自动完成此操作)

对于持久性,您可以将sqlite用于本地存储,将azure用于云存储。有很多库可以轻松地集成这一功能


希望这能有所帮助。

您是否有用于存储的web api设置?你们现在有什么设置?嗨,谢谢你们,我想先把它们存储在文件中,一旦我了解了api,我会把它们全部传输到那个里。我设置了sqlite,但据我所知,sqlite不适合图片..您不会存储字节[],而是存储图片的位置,这就是为什么有URL属性。byte[]Image属性仅用于临时数据,以便在拍摄照片或选择照片后实时显示它们。
public class User
{
   public int Id {get; set;}
   public string Name{get; set;}
   public List<Picture> Pictures{get; set;}
}

public class Picture
{
    public string Id {get; set;}
    public string Url{get; set;}
    public byte[] Image{get; set;}
}