async'ify ExportPhotos
This commit is contained in:
parent
a326c8432e
commit
cf354937e7
17
Program.cs
17
Program.cs
@ -221,7 +221,7 @@ public class Photo {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SaveAsJpeg(string outputRoot, JpegEncoder encoder) {
|
public async void SaveAsJpeg(string outputRoot, JpegEncoder encoder) {
|
||||||
// FIXME: if nothing was changed about this image, just copy the file bytes directly, possibly with metadata changed?
|
// FIXME: if nothing was changed about this image, just copy the file bytes directly, possibly with metadata changed?
|
||||||
string directory = System.IO.Path.Combine(
|
string directory = System.IO.Path.Combine(
|
||||||
outputRoot,
|
outputRoot,
|
||||||
@ -232,8 +232,10 @@ public class Photo {
|
|||||||
string filename = System.IO.Path.Combine(directory, System.IO.Path.GetFileName(Filename));
|
string filename = System.IO.Path.Combine(directory, System.IO.Path.GetFileName(Filename));
|
||||||
Console.WriteLine("saving " + filename);
|
Console.WriteLine("saving " + filename);
|
||||||
// FIXME: update JPEG metadata.
|
// FIXME: update JPEG metadata.
|
||||||
|
// FIXME: warn if the file already exists?
|
||||||
using (Image<Rgba32> image = Image.Load<Rgba32>(Filename)) {
|
using (Image<Rgba32> image = Image.Load<Rgba32>(Filename)) {
|
||||||
image.Save(filename, encoder);
|
// Util.RotateImageFromExif(image, Orientation);
|
||||||
|
await image.SaveAsync(filename, encoder);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -802,8 +804,8 @@ public class Game : GameWindow {
|
|||||||
|
|
||||||
// Load photos from a directory.
|
// Load photos from a directory.
|
||||||
// string[] files = Directory.GetFiles(@"c:\users\colin\desktop\photos-test\");
|
// string[] files = Directory.GetFiles(@"c:\users\colin\desktop\photos-test\");
|
||||||
string[] files = Directory.GetFiles(@"c:\users\colin\pictures\photos\2023\07\14\");
|
// string[] files = Directory.GetFiles(@"c:\users\colin\pictures\photos\2023\07\14\");
|
||||||
// string[] files = Directory.GetFiles(@"G:\DCIM\100EOSR6\");
|
string[] files = Directory.GetFiles(@"G:\DCIM\100EOSR6\");
|
||||||
// string[] files = Directory.GetFiles(@"C:\Users\colin\Pictures\photos\2018\06\23");
|
// string[] files = Directory.GetFiles(@"C:\Users\colin\Pictures\photos\2018\06\23");
|
||||||
// string[] files = Directory.GetFiles(@"C:\Users\colin\Desktop\Germany all\104D7000");
|
// string[] files = Directory.GetFiles(@"C:\Users\colin\Desktop\Germany all\104D7000");
|
||||||
// string[] files = Directory.GetFiles(@"C:\Users\colin\Desktop\many-birds\");
|
// string[] files = Directory.GetFiles(@"C:\Users\colin\Desktop\many-birds\");
|
||||||
@ -886,11 +888,14 @@ public class Game : GameWindow {
|
|||||||
|
|
||||||
// To find the JPEG compression level of a file from the command line:
|
// To find the JPEG compression level of a file from the command line:
|
||||||
// $ identify -verbose image.jpg | grep Quality:
|
// $ identify -verbose image.jpg | grep Quality:
|
||||||
private void ExportPhotos() {
|
// FIXME: don't ExportPhotos() if another export is already active.
|
||||||
|
// FIXME: show a progress bar or something.
|
||||||
|
private async void ExportPhotos() {
|
||||||
JpegEncoder encoder = new JpegEncoder() { Quality = 100 };
|
JpegEncoder encoder = new JpegEncoder() { Quality = 100 };
|
||||||
string outputRoot = @"c:\users\colin\desktop\totte-output";
|
string outputRoot = @"c:\users\colin\desktop\totte-output";
|
||||||
foreach (Photo p in photos) {
|
foreach (Photo p in photos) {
|
||||||
p.SaveAsJpeg(outputRoot, encoder);
|
// p.SaveAsJpeg(outputRoot, encoder);
|
||||||
|
await Task.Run( () => { p.SaveAsJpeg(outputRoot, encoder); });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user