Пример #1
0
        /// <summary>
        ///
        /// </summary>
        private void Excate(SourceTaskItem sourceTask)
        {
            try
            {
                string sqlStr = "SELECT * FROM Users WHERE ISAsync='0'";

                _log.InfoFormat(DateTime.Now + Environment.NewLine + "WorkerInfoSyscTask sqlStr:{0}", sqlStr);

                DataTable dt = new SQLHelper(sourceTask.ConnectionString).ExecuteQuery(sqlStr, CommandType.Text);

                //DataTable dt = Query.ExecuteSQLQuery(sqlStr, SystemEnvironment.Instance.DefaultDataSource);
                List <WorkerInfo> WorkerInfos = dt.AsEnumerable().Select(x => new WorkerInfo()
                {
                    name      = ConvertObject.ToString(x["Names"]),
                    idCardNum = ConvertObject.ToString(x["ICNum"]),
                    gender    = ConvertObject.ToInt32(x["Sex"]),
                    //constructionPermitNum = "410185201903070501",
                    constructionPermitNum = "SGXKZZZ",
                    bankCardNum           = ConvertObject.ToString(x["CardNo"]),
                    attenNum      = ConvertObject.ToString(x["No"]),
                    nation        = ConvertObject.ToString(x["Nation"]),
                    headPicBase64 = PictureTools.GetBase64String(ConvertObject.ToString(x["Pic"])),//Pic
                    nativePlace   = "",
                    phone         = ConvertObject.ToString(x["Phone"]),
                    workState     = 1,
                    entranceTime  = ConvertObject.ToString(x["StartDate"]),
                }).ToList();
                //工人信息上传
                if (WorkerInfos.Count > 0)
                {
                    string result = new HttpMethod().SendWorkerInfo(WorkerInfos);
                    _log.InfoFormat("WorkerInfoSyscTask result:{0}", result);

                    sqlStr = string.Format("UPDATE Users SET ISAsync = '1' WHERE ISAsync = '0'");
                    int resultint = new SQLHelper(sourceTask.ConnectionString).ExecuteNonQuery(sqlStr, CommandType.Text);

                    _log.InfoFormat("WorkerInfoSyscTask resultint:{0}", resultint);
                }
            }
            catch (Exception ex)
            {
                _log.InfoFormat(DateTime.Now + Environment.NewLine + "WorkerInfoSyscTask 发生异常:{0}", ex.Message);
            }
        }
Пример #2
0
        //
        // Получение базы изображений
        //
        public static string getPrictures(string picPath, int picSize)
        {
            string picFile = "pics.txt";
            string result  = "";

            Flickr flickr = new Flickr("a03ec58d1b94489ebdd0ac6372942ec6");

            var options = new PhotoSearchOptions {
                Tags = "colorful", PerPage = 500, Page = 1
            };
            PhotoCollection photos = flickr.PhotosSearch(options);

            WebClient client = new WebClient();

            foreach (Photo photo in photos)
            {
                PictureTools.avColor av;
                client.DownloadFile(photo.SquareThumbnailUrl, picPath + "/" + photo.SquareThumbnailUrl.Split('/').Last());

                using (Image img = Image.FromFile(picPath + "/" + photo.SquareThumbnailUrl.Split('/').Last()))
                {
                    Bitmap bmp = new Bitmap(img, picSize, picSize);
                    img.Dispose();
                    bmp.Save(picPath + "/" + photo.SquareThumbnailUrl.Split('/').Last());
                    av = PictureTools.getAvColor((Bitmap)bmp.Clone());
                    bmp.Dispose();
                }

                result += String.Format("<img src='/Home/Data/{0}' width='30px'/> <div style='display: inline-flex; width:30px; height: 30px; background-color: rgb({1}, {2}, {3})'></div><br>", photo.SquareThumbnailUrl.Split('/').Last(), av.R, av.G, av.B);

                using (StreamWriter sw = System.IO.File.AppendText(picPath + "/" + picFile))
                {
                    sw.WriteLine(photo.SquareThumbnailUrl.Split('/').Last() + ";" + av.R + "," + av.G + "," + av.B);
                }
            }

            return(result);
        }
Пример #3
0
            public static void GenerateThumbnail(MediaViewModel mediaViewModel)
            {
                switch (mediaViewModel.MediaType)
                {
                case MediaType.Photo:
                    ThreadPool.QueueUserWorkItem(delegate { PictureTools.GenerateThumbnailOfPicture(mediaViewModel.AbsoluteURL, mediaViewModel.ID_Media, setImage); });
                    break;

                case MediaType.Video:
                    ThreadPool.QueueUserWorkItem(delegate { VideoTools.CaptureScreen(mediaViewModel.AbsoluteURL, mediaViewModel.ID_Media, new TimeSpan(0, 0, 30, 0), "Thumbnail", 0.5, null, setImage); });
                    break;

                case MediaType.Musique:
                    ThreadPool.QueueUserWorkItem(delegate { AudioTools.ReadMP3CoverArt(mediaViewModel.AbsoluteURL, mediaViewModel.ID_Media, setImage); });
                    break;

                case MediaType.Autre:
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }
Пример #4
0
        public static string processing(string picPath, string picture, int picSize)
        {
            string picFile = "pics.txt";
            string result  = "";

            Bitmap bmp = new Bitmap(picPath + "/UsersPhoto/" + picture);

            for (int i = 0; i < bmp.Height - picSize; i += picSize)
            {
                for (int j = 0; j < bmp.Width - picSize; j += picSize)
                {
                    // Определяем средний цвет окна подопытного изображения
                    PictureTools.avColor avCt = new PictureTools.avColor();

                    for (int k = 0; k < picSize; k++)
                    {
                        for (int q = 0; q < picSize; q++)
                        {
                            Color c = bmp.GetPixel(j + k, i + q); // Читаем каждый пиксель подопытной картинки
                            avCt.R += c.R;
                            avCt.G += c.G;
                            avCt.B += c.B;
                        }
                    }

                    avCt.R /= picSize * picSize;
                    avCt.G /= picSize * picSize;
                    avCt.B /= picSize * picSize;

                    Color CMain = Color.FromArgb(avCt.R, avCt.G, avCt.B);

                    // Прогоняем по всей базе изображений полученный средний цвет
                    // и считаем расстояние между цветами (Эвклидова мера)

                    Dictionary <string, double> distList = new Dictionary <string, double>();

                    foreach (string str in System.IO.File.ReadAllLines(picPath + "/" + picFile))
                    {
                        string[] SColor = str.Split(';')[1].Split(',');

                        Color ct = Color.FromArgb(Int32.Parse(SColor[0]), Int32.Parse(SColor[1]), Int32.Parse(SColor[2]));

                        distList.Add(str.Split(';')[0], PictureTools.getDist(ct, CMain)); // Считаем расстояние
                    }

                    string winner = "";

                    foreach (var item in distList)
                    {
                        if (item.Value.Equals(distList.Values.Min()))
                        {
                            winner = item.Key;
                        }
                    }

                    result += String.Format("<img src='/Home/Data/{0}' />", winner);
                }

                result += "<br>";
            }

            bmp.Dispose();

            return(result);
        }
Пример #5
0
        /// <summary>
        /// Opens and loads palette from selected P56 file in the palBox
        /// </summary>
        private void OpenP56()
        {
            if (File.Exists(palFile))
            {
                palette.Clear();

                try
                {
                    byte[]      buffer = File.ReadAllBytes(palFile);
                    PictureType type   = PictureTools.GetType(buffer);
                    Picture     p      = PictureTools.Load(buffer, type);
                    this.Text = defaultTxt + " " + palFile;

                    if (p != null)
                    {
                        if (p.SCIPalette != null)
                        {
                            if (p.SCIPalette.Colors != null)
                            {
                                paletteControl1.ShowPalette(p.SCIPalette.Colors);
                                this.LoadedColors = p.SCIPalette.Colors;
                                palInfoLbl.Text   = string.Format("Palette type - {0}, {1} Colors", type, LoadedColors.Length);
                            }
                            else
                            {
                                MessageBox.Show("Colors is null");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Palette is null");
                        }
                    }
                    else
                    {
                        MessageBox.Show("P is null");
                    }

                    if (p.Cells != null)
                    {
                        if (p.Cells.Count != 0 && p.Cells[0] != null)
                        {
                            if (p.Cells[0].CellPicture != null)
                            {
                                ResetPictureBox(p.Cells[0].CellPicture);
                            }
                        }
                    }
                }
                catch (Exception ex) { MessageBox.Show(string.Format("{0} : {1}.", ex.Message, ex.StackTrace)); }
            }
            else
            {
                MessageBox.Show("Unknown Error");
            }

            // Enable save
            if (picBox.Image != null)
            {
                saveAsBtn.Enabled      = true;
                saveAsFileMenu.Enabled = true;
            }
            else
            {
                saveAsBtn.Enabled      = false;
                saveAsFileMenu.Enabled = false;
            }
        }
Пример #6
0
        public Picture AnalyzeAndSave(Picture picture, AddPictureModel model, HttpPostedFileBase file)
        {
            // зберігаю зображення
            string picture_name        = picture.id.ToString() + Path.GetExtension(file.FileName);
            string picture_folder_name = Path.Combine(picture_folder, picture_name);

            file.SaveAs(picture_folder_name);

            picture.path = Path.Combine("Picture", picture_name); // записую відносний шлях в обєкт бази даних

            // отримую всі зображення з файлу
            var   images = MpoParser.GetImageSources(picture_folder_name);
            Image img_for_thumb;

            if (!images.Any()) // якщо 2D
            {
                img_for_thumb = Image.FromFile(picture_folder_name);
                picture.type  = "2D";
            }
            else // якщо 3D
            {
                if (model.isAdvanced && model.isTo2d) // якщо юзер хоче зберегти 3D зображення в 2D
                {
                    img_for_thumb = images.ElementAt(model.leftOrRight);
                    picture_name  = Path.ChangeExtension(picture_name, ".JPG");
                    picture.type  = "2D";
                    System.IO.File.Delete(picture_folder_name); // видаляю непотрібний файл
                }
                else
                {
                    img_for_thumb = images.ElementAt(0); // беру перше зображення (з лівої камери)

                    // змінюю формат оригіналу на .mpo (на сервер заавжди приходить зображення формату JPG)
                    picture_name = Path.ChangeExtension(picture_name, ".MPO");
                    file.SaveAs(Path.Combine(picture_folder, picture_name));
                    picture.type = "3D";
                }
                img_for_thumb.Save(Path.ChangeExtension(picture_folder_name, ".JPG")); // зберігаю зображення, з якого буду робити прев'ю
                picture.path = Path.Combine("Picture", picture_name);
            }

            var original_length = PictureTools.GetByteSize(img_for_thumb).LongLength;
            // створюю прев'ю
            var thumb_sm        = PictureTools.MakeThumbnail(img_for_thumb, 155, 97);
            var thumb_sm_length = PictureTools.GetByteSize(thumb_sm).LongLength;

            if (original_length > thumb_sm_length)
            {
                thumb_sm.Save($"{picture_folder}/{picture.id}-thumb_sm.JPG");
            }

            var thumb_md        = PictureTools.MakeThumbnail(img_for_thumb, 280, 999);
            var thumb_md_length = PictureTools.GetByteSize(thumb_md).LongLength;

            if (original_length > thumb_md_length)
            {
                thumb_md.Save($"{picture_folder}/{picture.id}-thumb_md.JPG");
                if (Path.GetExtension(picture.path) == ".MPO")
                {
                    System.IO.File.Delete(picture_folder_name); // видаляю непотрібний файл
                }
            }

            return(picture);
        }