| Name | Message | Date |
|---|---|---|
| 📄 RecordingPage.axaml | 3 hours ago | |
| 📄 RecordingPage.axaml.cs | 3 hours ago | |
| 📄 StartPage.axaml | 7 hours ago | |
| 📄 StartPage.axaml.cs | 3 hours ago |
📄
app/src/Pages/RecordingPage.axaml.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
using System.Threading.Tasks; using System.Web; using Avalonia.Controls; using Avalonia.Interactivity; using Avalonia.Platform.Storage; using SkiaSharp; namespace BookScanner.App.Pages; public partial class RecordingPage : ContentPage { private readonly IStorageFolder projectFolder; private int page = 0; private int attempt = 0; public RecordingPage(IStorageFolder projectFolder) { InitializeComponent(); DataContext = this; this.projectFolder = projectFolder; projectName.Text = HttpUtility.UrlDecode(projectFolder.Path.Segments[^1].Trim('/')); } private async void OnCaptureClick(object? sender, RoutedEventArgs args) { pageCounter.Text = (++page).ToString("D3"); attempt = 0; var images = await projectFolder.GetFolderAsync("images"); await CaptureAttempt(images!); } private async void OnRecaptureClick(object? sender, RoutedEventArgs args) { attempt++; var images = await projectFolder.GetFolderAsync("images"); await CaptureAttempt(images!); } private async Task CaptureAttempt(IStorageFolder images) { var leftTask = SaveLeft(images); await SaveRight(images); await leftTask; } private async Task SaveLeft(IStorageFolder images) { using var image = SKImage.FromBitmap(leftCameraPage.Image); using var encoded = image.Encode(SKEncodedImageFormat.Png, 100); var file = await images!.CreateFileAsync($"{page:D3}-{attempt:D1}L.png"); using var stream = await file!.OpenWriteAsync(); encoded.SaveTo(stream); } private async Task SaveRight(IStorageFolder images) { using var image = SKImage.FromBitmap(rightCameraPage.Image); using var encoded = image.Encode(SKEncodedImageFormat.Png, 100); var file = await images!.CreateFileAsync($"{page:D3}-{attempt:D1}R.png"); using var stream = await file!.OpenWriteAsync(); encoded.SaveTo(stream); } }