public async Task PixelImagesToGoogle() { PixelImage pixelImage = null; int skip = 0; do { _logger.Info($"skiping: {skip}"); using (var pixelContext = new PixelContext(_dbContextOptions)) { var q = pixelContext.PixelImage .Where(x => string.IsNullOrWhiteSpace(x.GoogleId) && x.ProcessState == null || x.ProcessState.Value == 0) .Skip(skip); var count = await q.CountAsync(); _logger.Info($"To proccess: {count}"); pixelImage = await q.FirstOrDefaultAsync(); } if (pixelImage == null) { break; } await PixelImageToGoogle(pixelImage); } while (true); }
public void BlackAndWhite() { // Arrange Image image = Image.FromFile("image.jpg"); PixelImage pixelImage = new PixelImage(new Bitmap(image)); // Act pixelImage.BlackAndWhite(); // Assert Assert.IsNotNull(pixelImage.pixels); pixelImage.GetAsBitmap().Save("image.png", ImageFormat.Png); }
public async Task UpdateImagesMeta(int index = 0) { PixelImage pixelImage = null; do { _logger.Info($"index: {index}"); using (var pixelContext = new PixelContext(_dbContextOptions)) { pixelImage = await pixelContext.PixelImage.Skip(index).FirstOrDefaultAsync(); } index++; await UpdateImageMeta(pixelImage); } while (pixelImage != null); }
public void Constructor() { // Arrange Image image = Image.FromFile("image.jpg"); // Act PixelImage pixelImage = new PixelImage(new Bitmap(image)); // Assert Assert.IsNotNull(pixelImage.pixels); foreach (Pixel pixel in pixelImage.pixels) { if (pixel == null) { Assert.Fail(); } } }
public void ConvertFromBytesToPixels() { int j = 0; for (int i = 0; i < this.ImageToProcess.Length; i += 4) { if (ImageToProcess[i + 1] != 0) { var red = ImageToProcess[i + 1]; var px = j % ImageWidth; int py = (j / ImageWidth); var point = new Point(px, py); var PointToAdd = new Pixel(0, red, 0, 0, point); PixelImage.Add(PointToAdd); } j++; } }
public async Task UpdateImageMeta(PixelImage pixelImage) { _logger.Info($"metaurl: {pixelImage.MetaUrl}"); var list = await _imageMetaParser.LoadImageTags(pixelImage.MetaUrl); if (list != null && list.Count > 0) { _logger.Info($"Tags loaded: {list.Count}"); var keywords = string.Join(',', list); using (var pixelContext = new PixelContext(_dbContextOptions)) { pixelImage.Keywords = keywords; pixelContext.PixelImage.Update(pixelImage); await pixelContext.SaveChangesAsync(); } } else { _logger.Info("No tags."); } }
public DragBar(int width) : base() { bg = new ThreePatch(Resources.Option_DragBarBG_Left, Resources.Option_DragBarBG_Mid, Resources.Option_DragBarBG_Right); btn = new PictureBox(); btn.SizeMode = PictureBoxSizeMode.AutoSize; btn.Image = Resources.Option_DragBarBtn; btn.Cursor = Cursors.Hand; bar = new PixelImage(); bar.SizeMode = PictureBoxSizeMode.StretchImage; bar.Image = Resources.Option_DragBar_Mid; bar.Location = new Point(BtnMinX / 2, 0); BarWidth = width; bg.Controls.Add(bar); bg.Controls.Add(btn); Controls.Add(bg); bar.BringToFront(); btn.BringToFront(); SetEvent(); SetValueWithoutEvent(1f); }
/// <summary> /// 载入首层资源 /// </summary> /// <param name="pImage"></param> public void LoadSource(PixelImage pImage, int ans) { Layers[0].Load(Matrix <double> .Build.Dense(SourceNum, 1, (i, j) => Convert.ToDouble(pImage.Data[i]) / 255)); this.ans = ans; }
public async Task PixelImageToGoogle(PixelImage pixelImage) { _logger.Info($"url: {pixelImage.Url}"); var arr = await _fileLoader.GetByteArrayAsync(pixelImage.Url); if (arr == null || arr.Length == 0) { _logger.Error("arr is null"); using (var pixelContext = new PixelContext(_dbContextOptions)) { pixelImage.ProcessState = PixelImageProcessState.ImageNotFound; pixelContext.Update(pixelImage); await pixelContext.SaveChangesAsync(); } return; } int width = 0; int height = 0; //string phashStr = null; using (var stream = new MemoryStream()) { try { using (var im = new MagickImage(arr)) { im.Strip(); im.Format = MagickFormat.Jpeg; im.Quality = 85; im.Interlace = Interlace.Jpeg; im.ColorSpace = ColorSpace.sRGB; im.Settings.SetDefines(new JpegWriteDefines() { SamplingFactors = new MagickGeometry[] { new MagickGeometry(4, 2) } }); width = im.Width; height = im.Height; im.Write(stream); //im.Grayscale(); //var phash = im.PerceptualHash(); //phashStr = phash.ToString(); } } catch (ImageMagick.MagickErrorException ex) { _logger.Error(ex); using (var pixelContext = new PixelContext(_dbContextOptions)) { pixelImage.ProcessState = PixelImageProcessState.ImgFormatNotValid; pixelContext.Update(pixelImage); await pixelContext.SaveChangesAsync(); } return; } catch (Exception ex) { _logger.Error(ex); throw ex; } stream.Position = 0; try { var name = string.IsNullOrEmpty(pixelImage.Title) ? "image" : pixelImage.Title; var id = await _googleService.Upload(stream, $"{name}.jpg"); using (var pixelContext = new PixelContext(_dbContextOptions)) { pixelImage.GoogleId = id; //pixelImage.GrayscalePerceptualHash = phashStr; pixelImage.Width = width; pixelImage.Height = height; pixelContext.Update(pixelImage); await pixelContext.SaveChangesAsync(); } } catch (Exception ex) { _logger.Error(ex); throw ex; } } return; }