Beispiel #1
0
        public override void CreateMaster(FileProcess fileProcess)
        {
            // create folder
            var albumName        = Path.GetFileNameWithoutExtension(Path.GetDirectoryName(fileProcess.Path));
            var masterFolderPath = Path.Combine(_masterFolderPath, albumName);

            CreateFolder(masterFolderPath);

            File.Copy(fileProcess.Path, Path.Combine(masterFolderPath, Path.GetFileName(fileProcess.Path)), true);
        }
Beispiel #2
0
        public override void CreateView(FileProcess fileProcess)
        {
            var width  = 1024;
            var height = 768;

            // create folder
            var albumName      = Path.GetFileNameWithoutExtension(Path.GetDirectoryName(fileProcess.Path));
            var viewFolderPath = Path.Combine(_viewFolderPath, albumName);

            CreateFolder(viewFolderPath);

            // create thumbail
            var irfanViewThumbnailParameters = $@"""{fileProcess.Path}"" /resize=({width}, {height}) /aspectratio /resample /convert=""{Path.Combine(viewFolderPath, fileProcess.Name)}""";

            CreateProcess(_irfanViewBinPath, irfanViewThumbnailParameters).Start();
        }
Beispiel #3
0
        public FileProcess Process(string filePath)
        {
            var fileName      = Path.GetFileName(filePath);
            var fileExtension = Path.GetExtension(filePath).ToLower(CultureInfo.InvariantCulture);

            if (PictureFileExtensions.Contains(fileExtension))
            {
                DateTime datePictureTaken;
                string   cameraMaker, cameraModel;
                uint     height, width;
                double   fileSize;

                using (ExifReader reader = new ExifReader(filePath))
                {
                    reader.GetTagValue(ExifTags.DateTimeDigitized, out datePictureTaken);
                    reader.GetTagValue(ExifTags.Make, out cameraMaker);
                    reader.GetTagValue(ExifTags.Model, out cameraModel);
                    reader.GetTagValue(ExifTags.PixelXDimension, out width);
                    reader.GetTagValue(ExifTags.PixelYDimension, out height);
                }

                using (var file = File.OpenRead(filePath))
                {
                    fileSize = file.Length;
                }

                var mediaFile = new FileProcess
                {
                    Name        = fileName,
                    Extension   = fileExtension,
                    Path        = filePath,
                    DateTaken   = datePictureTaken,
                    CameraMaker = cameraMaker,
                    CameraModel = cameraModel,
                    FileSize    = fileSize,
                    Height      = Convert.ToInt32(height),
                    Width       = Convert.ToInt32(width)
                };

                return(mediaFile);
            }

            return(null);
        }
Beispiel #4
0
        public override void CreateView(FileProcess fileProcess)
        {
            // create folder
            var albumName      = Path.GetFileNameWithoutExtension(Path.GetDirectoryName(fileProcess.Path));
            var viewFolderPath = Path.Combine(_viewFolderPath, albumName);

            CreateFolder(viewFolderPath);

            // create mp4 video version
            var mp4Parameters = $@"-i ""{fileProcess.Path}"" -qscale 0 ""{Path.Combine(viewFolderPath, fileProcess.Name + ".mp4")}"" -y";
            var mp4Process    = CreateProcess(_ffmpegBinPath, mp4Parameters);

            StartFFmpegProcess(mp4Process);

            //// create webm video version
            //var webmParameters = $@"-i ""{fileProcess.Path}"" -qscale 0 ""{Path.Combine(viewFolderPath, fileProcess.Name + ".webm")}"" -y";
            //var webmProcess = CreateProcess(_ffmpegBinPath, webmParameters);
            //StartFFmpegProcess(webmProcess);
        }
Beispiel #5
0
        private void CreateThumbnail(FileProcess fileProcess, string folderPath, int width, int height)
        {
            // create folder
            var albumName           = Path.GetFileNameWithoutExtension(Path.GetDirectoryName(fileProcess.Path));
            var thumbnailFolderPath = Path.Combine(folderPath, albumName);

            CreateFolder(thumbnailFolderPath);

            // take video thumbnail
            var tempPath                  = Path.GetTempPath();
            var thumbnailFilePath         = Path.Combine(tempPath, fileProcess.Name) + ".jpg";
            var ffmpegThumbnailParameters = $@"-i ""{fileProcess.Path}"" -ss 00:00:05 -vframes 1 ""{thumbnailFilePath}"" -y";
            var process = CreateProcess(_ffmpegBinPath, ffmpegThumbnailParameters);

            process.Start();
            process.WaitForExit();

            // create thumbail
            var irfanViewThumbnailParameters = $@"""{thumbnailFilePath}"" /resize=({width}, {height}) /aspectratio /resample /silent /convert=""{Path.Combine(thumbnailFolderPath, fileProcess.Name + ".jpg")}""";

            process = CreateProcess(_irfanViewBinPath, irfanViewThumbnailParameters);
            process.Start();
            process.WaitForExit();
        }
Beispiel #6
0
 public override void CreateThumbnail(FileProcess fileProcess)
 {
     CreateThumbnail(fileProcess, _thumbnailsFolderPath, 100, 70);
 }
Beispiel #7
0
 public override void CreateSearch(FileProcess fileProcess)
 {
     CreateThumbnail(fileProcess, _searchFolderPath, 50, 30);
 }
 public abstract void CreateMaster(FileProcess fileProcess);
 public abstract void CreateView(FileProcess fileProcess);
 public abstract void CreateSearch(FileProcess fileProcess);
 public abstract void CreateThumbnail(FileProcess fileProcess);