Пример #1
0
        public void Print(Image image, string printerName)
        {
            InstagramMessageDto imageDto = _mappingEngine.Map <InstagramMessageDto>(image);

            var result = _patternVmProvider.GetPatterns();

            var             instaTemplate = result.SingleOrDefault(x => x.IsInstaPrinterTemplate);
            Action <byte[]> print         = null;

            if (!string.IsNullOrEmpty(printerName))
            {
                print = (data) => _imagePrinter.Print(data, printerName);
            }
            else
            {
                print = (data) => _imagePrinter.Print(data);
            }

            byte[] imageData = new byte[] { };
            Size   imageStreamSize;

            using (var stream = new MemoryStream(imageDto.Data))
            {
                var img = DrawingImage.FromStream(stream);
                imageStreamSize = img.Size;
            }

            if (instaTemplate != null)
            {
                imageData = _imageUtils.ProcessImages(new List <byte[]> {
                    imageDto.Data
                }, imageStreamSize,
                                                      _mappingEngine.Map <EntityTemplate>(instaTemplate));
            }

            else
            {
                //если раземер имени превышает допустимое значение то мы обрезаем его
                var imageName = imageDto.FullName.Length < 23 ? imageDto.FullName : (imageDto.UserName.Length < 23 ? imageDto.UserName : (imageDto.UserName.Substring(0, 20) + "..."));
                imageData = _imageUtils.GetCaptureForInstagramControl(imageDto.Data, imageName, DateTime.Now, imageDto.ProfilePictureData);
            }
            _imageService.SaveImage(new ImageViewModel(imageData));
            print(imageData);
        }
Пример #2
0
        public void Print(Image image, string printerName)
        {
            InstagramMessageDto imageDto = _mappingEngine.Map<InstagramMessageDto>(image);

            var result = _patternVmProvider.GetPatterns();

            var instaTemplate = result.SingleOrDefault(x => x.IsInstaPrinterTemplate);
            Action<byte[]> print = null;
            if (!string.IsNullOrEmpty(printerName))
                print = (data) => _imagePrinter.Print(data, printerName);
            else
            {
                print = (data) => _imagePrinter.Print(data);
            }

            byte[] imageData = new byte[] { };
            Size imageStreamSize;

            using (var stream = new MemoryStream(imageDto.Data))
            {
                var img = DrawingImage.FromStream(stream);
                imageStreamSize = img.Size;
            }

            if (instaTemplate != null)
                imageData = _imageUtils.ProcessImages(new List<byte[]> { imageDto.Data }, imageStreamSize,
                    _mappingEngine.Map<EntityTemplate>(instaTemplate));

            else
            {
                //если раземер имени превышает допустимое значение то мы обрезаем его
                var imageName = imageDto.FullName.Length < 23 ? imageDto.FullName : (imageDto.UserName.Length < 23 ? imageDto.UserName : (imageDto.UserName.Substring(0, 20) + "..."));
                imageData = _imageUtils.GetCaptureForInstagramControl(imageDto.Data, imageName, DateTime.Now, imageDto.ProfilePictureData);
            }
            _imageService.SaveImage(new ImageViewModel(imageData));
            print(imageData);
        }