private IObservable <IList <OwnImage> > LoadImagesFromFolder(string draggedFolder)
 {
     return(Observable.Return(draggedFolder)
            .SelectMany(x => new DirectoryInfo(x).GetFiles("*.jpg"))
            .Select(x => OwnImage.CreateFrom(x))
            .ToList());
 }
        /// <summary>
        /// </summary>
        /// <param name="image"></param>
        /// <returns></returns>
        private OwnImage ConvertImage(OwnImage image)
        {
            var onlyResizeIfWider = true;
            var newWidth          = 800;
            var maxHeight         = 600;

            var destinationImageFile = new FileInfo(image.SaveAs);

            Directory.CreateDirectory(destinationImageFile.DirectoryName);

            using (var fullsizeImage = System.Drawing.Image.FromFile(image.Path))
            {
                fullsizeImage.RotateFlip(RotateFlipType.Rotate180FlipNone);
                fullsizeImage.RotateFlip(RotateFlipType.Rotate180FlipNone);

                if (onlyResizeIfWider && fullsizeImage.Width <= newWidth)
                {
                    newWidth = fullsizeImage.Width;
                }

                int thumbHeight = fullsizeImage.Height * newWidth / fullsizeImage.Width;
                if (thumbHeight > maxHeight)
                {
                    newWidth    = fullsizeImage.Width * maxHeight / fullsizeImage.Height;
                    thumbHeight = maxHeight;
                }

                fullsizeImage.GetThumbnailImage(newWidth, thumbHeight, null, IntPtr.Zero)
                .Save(image.SaveAs, jpegCodecInfo, myEncoderParameters);
            }

            return(image);
        }
예제 #3
0
        /*
        protected Point[][] stackpos;
        protected Color[] stackcolors;
        protected Point[] betpos;
        protected Color betcolor;
        protected int[][] dealercheck;

        protected int stackxcount;
        protected int betxcount;
        protected int stackwidth;
        protected int stackheight;
        */
        /**
         * @param name="aBlindStruct" blindi structure
         * @param name="aStackPos" stackien paikka. Koottu siten, että taulukossa on
         * listoja mahdollisista positioista. Taulukon indeksi määrää mistä pelaajasta kyse.
         */
        public PokerTable(IntPtr ihwnd)
        {
            img = new OwnImage();
            data = new TableData();
            this.hwnd = ihwnd;
            if (hwnd.ToInt64() < 0)
                isReadFromWindow = false;
            casinoname = "";

            //System.IO.FileStream joo = new System.IO.FileStream(
        }
예제 #4
0
        public void readFromWindow(TableData iData)
        {
            Debug.WriteLine("readFromWindow 1");
            if (hwnd.ToInt32() == -1)
                return;
            Debug.WriteLine("readFromWindow 2");
            isReadFromWindow = true;
            img = new OwnImage();
            data = iData;
            // otetaan ikkunan sijainti muistiin
            Rectangle oldWindowRect = new Rectangle();
            User32.GetWindowRect(hwnd, ref oldWindowRect);

            // minimoidaan ja suurennetaan ikkuna Partyn grafiikkavirheiden takia
            try
            {
                Debug.WriteLine("readFromWindow 3");
                firsttry = true;
                takeScreenShot();
                Debug.WriteLine("readFromWindow 4");
                firsttry = false;
                mainReader();
                Debug.WriteLine("readFromWindow 5");
            }
            finally
            {
                uint flag = 0;

                if (User32.SupportPrintWindow())
                    flag = 4; //no zorder
                    //flag = 0;

                // Pienennetään pöytä siihen mikä se oli ennen
                oldWindowRect.Width -= oldWindowRect.X;
                oldWindowRect.Height -= oldWindowRect.Y;
                User32.SetWindowPos(hwnd, new IntPtr(-2), oldWindowRect.X, oldWindowRect.Y, oldWindowRect.Width, oldWindowRect.Height, flag);
                AfterResize(oldWindowRect);
            }
        }
 /// <summary>
 /// </summary>
 /// <param name="image"></param>
 /// <param name="ct"></param>
 /// <returns></returns>
 private Task <OwnImage> ConvertImageAsync(OwnImage image, CancellationToken ct)
 {
     return(Task.Run(() => this.ConvertImage(image), ct));
 }