예제 #1
0
        public void Execute(IPresentation presentation, Action <IImageReader> OnReadSeccessfull)
        {
            IImageReader imageReader = Factory.CreateImageLoader();
            var          image       = imageReader.Read();

            if (image != null)
            {
                presentation.AddImage(imageReader.ImageName, image);

                string savePath = Path.Combine(Resource.GetImageFolderPath(), imageReader.ImageName);

                File.Copy(imageReader.ImagePath, savePath, true);

                OnReadSeccessfull(imageReader);
            }
        }
예제 #2
0
        public static void InitiateConversion(string originalPath, string destinationPath, string outputFormat)
        {
            string    originalTypeStr = GetExtension(originalPath);
            ImageType originalType;
            ImageType finalType;

            try
            {
                originalType = (ImageType)Enum.Parse(typeof(ImageType), originalTypeStr, true);
                finalType    = (ImageType)Enum.Parse(typeof(ImageType), outputFormat, true);
            }
            catch (Exception)
            {
                throw new InvalidOperationException("Unsupported Image Type");
            }

            IFactory <IImageReader> readerFactory = new ReaderFactory();
            IFactory <IImageWriter> writerFactory = new WriterFactory();
            IImageReader            reader        = readerFactory.Create(originalType);
            IImageWriter            writer        = writerFactory.Create(finalType);

            var       image     = reader.Read(originalPath);
            Converter converter = new Converter(writer);

            converter.Convert(image, destinationPath);

            Bitmap pic = new Bitmap(image.Header.Width, image.Header.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb);

            for (int i = 0; i < image.Header.Height; i++)
            {
                for (int j = 0; j < image.Header.Width; j++)
                {
                    Color c = Color.FromArgb(image.Bitmap[i, j].R, image.Bitmap[i, j].G, image.Bitmap[i, j].B);
                    pic.SetPixel(j, i, c);
                }
            }

            pic.Save("testcow.bmp");

            string GetExtension(string path)
            {
                return(path.Substring(path.LastIndexOf('.') + 1));
            }
        }
        public bool TryToObtainImage(out Image image)
        {
            if (!_filePathsEnumerator.MoveNext())
            {
                var nextFilePending = false;

                if (_infitlyLoopOverFiles)
                {
                    _filePathsEnumerator.Reset();
                    nextFilePending = _filePathsEnumerator.MoveNext();
                }

                if (!nextFilePending)
                {
                    image = null;
                    return(false);
                }
            }

            image = _imageReader.Read(_filePathsEnumerator.Current);

            return(true);
        }
예제 #4
0
 public void Convert(string source, string output)
 {
     _reader.Read(source);
     _writer.Write(output, _reader.Pixels, _reader.Width, _reader.Depth);
 }