void saveFrame() { string path = "F:\\file.jpg"; double x1 = mainFrame.Margin.Left, x2 = mainFrame.Margin.Top, x3 = mainFrame.Margin.Right, x4 = mainFrame.Margin.Bottom; if (path == null) { return; } mainFrame.Margin = new Thickness(0, 0, 0, 0); Size size = new Size(mainFrame.Width, mainFrame.Height); mainFrame.Measure(size); mainFrame.Arrange(new Rect(size)); RenderTargetBitmap renderBitmap = new RenderTargetBitmap( (int)size.Width, (int)size.Height, 96, 96, PixelFormats.Default); renderBitmap.Render(mainFrame); using (FileStream fs = File.Open(path, FileMode.Create)) { JpegBitmapEncoder encoder = new JpegBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create(renderBitmap)); encoder.Save(fs); } mainFrame.Margin = new Thickness(x1, x2, x3, x4); }
public static void SnapShot(IntPtr sourcePtr, int pitch, int width, int height, string format) { var sync = new AutoResetEvent(false); Task.Factory.StartNew(() => { var source = BitmapSource.Create(width, height, 72, 72, PixelFormats.Bgr32, null, sourcePtr, pitch * height, pitch); sync.Set(); BitmapEncoder encoder; var encoderType = PresentationCore.GetType( $"System.Windows.Media.Imaging.{format}BitmapEncoder" , false, true); if (encoderType == null) { encoder = new JpegBitmapEncoder(); } else { encoder = Activator.CreateInstance(encoderType) as BitmapEncoder; if (encoder == null) { return; } } var frame = BitmapFrame.Create(source); encoder.Frames.Add(frame); using ( var file = File.Create(FileHelper.SavePath + "Snapshot " + DateTime.Now.ToString("yyyyMMddTHHmmss.") + format?.ToLower())) { encoder.Save(file); file.Close(); } }); sync.WaitOne(); }
/// <summary> /// 拍照识别 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void BtnPlay_Click(object sender, RoutedEventArgs e) { //抓取控件做成图片 RenderTargetBitmap bmp = new RenderTargetBitmap((int)VideoCapture.NaturalVideoWidth, (int)VideoCapture.NaturalVideoHeight, 96, 96, PixelFormats.Default); //VideoCapture.Stretch = Stretch.Fill; VideoCapture.Measure(VideoCapture.RenderSize); VideoCapture.Arrange(new Rect(VideoCapture.RenderSize)); bmp.Render(VideoCapture); BitmapEncoder encoder = new JpegBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create(bmp)); BarCodeScan scan = new BarCodeScan(); using (MemoryStream ms = new MemoryStream()) { encoder.Save(ms); Response <string> result = scan.GetBarCode(ms); if (!result.Success) { MessageBox.Show(result.Errors, "Error", MessageBoxButton.OK, MessageBoxImage.Error); VideoCapture.Play(); } else { BarCode = result.Data; if (string.IsNullOrEmpty(BarCode)) { MessageBox.Show("No valid barcode was obtained,Please Retry", "Notice", MessageBoxButton.OK, MessageBoxImage.Information); } else { VideoCapture.Pause(); Close(); } } } }
public void SaveImage(String fileName, Int32 format) { using (var fileStream = new FileStream(fileName, FileMode.Create)) { using (var memoryStream = new MemoryStream(this.ImageData)) { BitmapEncoder encoder; switch (format) { case 1: encoder = new BmpBitmapEncoder(); break; case 2: encoder = new GifBitmapEncoder(); break; case 3: encoder = new JpegBitmapEncoder(); break; case 4: encoder = new PngBitmapEncoder(); break; case 5: encoder = new TiffBitmapEncoder(); break; default: throw new ArgumentException("Unsupported image format"); } encoder.Frames.Add(BitmapFrame.Create(memoryStream, BitmapCreateOptions.None, BitmapCacheOption.OnLoad)); encoder.Save(fileStream); } } }
/// <summary> /// Exports the specified viewport. /// </summary> /// <param name="viewport"> /// The viewport. /// </param> public void Export(Viewport3D viewport) { int m = this.OversamplingMultiplier; var background = this.Background; if (background == null) { background = Brushes.Transparent; } var bmp = Viewport3DHelper.RenderBitmap(viewport, background, m); BitmapEncoder encoder; string ext = Path.GetExtension(this.FileName); switch (ext.ToLower()) { case ".jpg": var jpg = new JpegBitmapEncoder(); jpg.Frames.Add(BitmapFrame.Create(bmp)); encoder = jpg; break; case ".png": var png = new PngBitmapEncoder(); png.Frames.Add(BitmapFrame.Create(bmp)); encoder = png; break; default: throw new InvalidOperationException("Not supported file format."); } using (Stream stm = File.Create(this.FileName)) { encoder.Save(stm); } }
private static void MainCamera_LiveViewUpdated(Camera sender, Stream img) { LiveViewUpdates++; if (LiveViewUpdates == 1 || LiveViewUpdates % 100 == 0) { // Log only every 100 updates LogMessage($"Live view updated #{LiveViewUpdates}"); } try { using (WrapStream s = new WrapStream(img)) { img.Position = 0; BitmapImage EvfImage = new BitmapImage(); EvfImage.BeginInit(); EvfImage.StreamSource = s; EvfImage.CacheOption = BitmapCacheOption.OnLoad; EvfImage.EndInit(); EvfImage.Freeze(); JpegBitmapEncoder encoder = new JpegBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create((BitmapImage)EvfImage)); TempPreviewBuffer = new MemoryStream(); encoder.Save(TempPreviewBuffer); PreviewBuffer = TempPreviewBuffer; } } catch (Exception ex) { HandleException(ex); } finally { LiveViewWaiter.Set(); } }
private void btnSave_Click(object sender, RoutedEventArgs e) { SaveFileDialog dlg = new SaveFileDialog(); dlg.DefaultExt = ".jpg"; dlg.Filter = "JPEG|.jpg"; if (dlg.ShowDialog().Value) { string filename = dlg.FileName; int resolutionX = 96; int resolutionY = 96; try { WindowInteropHelper wih = new WindowInteropHelper(Application.Current.MainWindow); System.Drawing.Graphics desktop = System.Drawing.Graphics.FromHwnd(wih.Handle); resolutionX = (int)desktop.DpiX; resolutionY = (int)desktop.DpiY; } finally { } //use RenderTargetBitmap RenderTargetBitmap rtb = new RenderTargetBitmap( (int)ParentPlaceHolder.ActualWidth, (int)ParentPlaceHolder.ActualHeight, resolutionX, resolutionY, PixelFormats.Pbgra32); rtb.Render(ParentPlaceHolder); FileStream fs = new FileStream(filename, FileMode.Create); // BmpBitmapEncoder encoder = new BmpBitmapEncoder(); JpegBitmapEncoder encoder = new JpegBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create(rtb)); encoder.Save(fs); fs.Close(); } }
/// <summary> /// /// </summary> public String SaveNewImage(BitmapImage image) { try { JpegBitmapEncoder encoder = new JpegBitmapEncoder(); //// If this is a new relationship that is being added, the SelectedRelationship first and last //// names will be null. //// Calculate the relationshipID to be 1 more than the current SelectedProperty's //// relationship collection count. Otherwise, we assume they are updating/replacing //// the current image and therefore we use the existing relationshipID int relationID = 0; if (String.IsNullOrEmpty(this.SelectedRelation.FName) && String.IsNullOrEmpty(this.SelectedRelation.LName)) { relationID = this.SelectedProperty.Relationships.Count() + 1; } else { relationID = this.SelectedRelation.RelationshipID; } String photoURI = baseURI + this.SelectedProperty.Section.ToString() + "-" + this.SelectedProperty.Block.ToString() + "-" + this.SelectedProperty.Lot.ToString() + "-" + this.SelectedProperty.SubLot.ToString() + "-" + relationID + ".jpg"; encoder.Frames.Add(BitmapFrame.Create(image)); using (var filestream = new FileStream(photoURI, FileMode.Create)) encoder.Save(filestream); return(photoURI); } catch (Exception ex) { return(null); } }
private void btn_save_foto_Click(object sender, RoutedEventArgs e) { try { if (photo.Source != null) { Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog(); dlg.FileName = "newFlowerPhoto"; // Default file name dlg.DefaultExt = ".jpg"; // Default file extension dlg.Filter = "JPG Files (*.jpg)|*.jpg"; // Filter files by extension // Show save file dialog box Nullable <bool> result = dlg.ShowDialog(); // Process save file dialog box results if (result == true) { // Save document string filename = dlg.FileName; JpegBitmapEncoder jpegBitmapEncoder = new JpegBitmapEncoder(); jpegBitmapEncoder.Frames.Add(BitmapFrame.Create(photo.Source as BitmapSource)); using (FileStream fileStream = new FileStream(filename, FileMode.Create)) jpegBitmapEncoder.Save(fileStream); new MsgBox("Фото сохранено!", "Информация").ShowDialog(); } } else { throw new Exception("Нечего сохранять!"); } } catch (Exception ex) { new MsgBox(ex.Message, "Ошибка").ShowDialog(); } }
//---------------------------------------------------------- public string CreatePreview(ElementType type, All_Data myAll_Data) { string path = ""; try { mySource = new ListSource(); if (Directory.Exists(mySource.user + myAll_Data.list_path_foder_data[1]) == false) { Directory.CreateDirectory(mySource.user + myAll_Data.list_path_foder_data[1]); } Size imgSize = new Size(200, 200); Bitmap image = type.GetPreviewImage(imgSize); // encode image to jpeg for test display purposes: JpegBitmapEncoder encoder = new JpegBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create( ConvertBitmapToBitmapSource(image))); encoder.QualityLevel = 25; path = mySource.user + myAll_Data.list_path_foder_data[1] + "\\" + type.FamilyName + ".jpg"; FileStream file = new FileStream(path, FileMode.Create, FileAccess.Write); encoder.Save(file); file.Close(); } catch (Exception ex) { } return(path); }
public static byte[] GetFrame(this UIElement source, double scale, int quality) { double actualHeight = source.RenderSize.Height; double actualWidth = source.RenderSize.Width; double renderHeight = actualHeight * scale; double renderWidth = actualWidth * scale; Size dpi = new Size(96, 96); RenderTargetBitmap renderTarget = new RenderTargetBitmap((int)renderWidth, (int)renderHeight, dpi.Width, dpi.Height, PixelFormats.Pbgra32); VisualBrush sourceBrush = new VisualBrush(source); DrawingVisual drawingVisual = new DrawingVisual(); DrawingContext drawingContext = drawingVisual.RenderOpen(); using (drawingContext) { drawingContext.PushTransform(new ScaleTransform(scale, scale)); drawingContext.DrawRectangle(sourceBrush, null, new Rect(new Point(), new Point(actualWidth, actualHeight))); } renderTarget.Render(drawingVisual); JpegBitmapEncoder jpgEnconder = new JpegBitmapEncoder(); jpgEnconder.QualityLevel = quality; jpgEnconder.Frames.Add(BitmapFrame.Create(renderTarget)); Byte[] imageArray; using (MemoryStream outputStream = new MemoryStream()) { jpgEnconder.Save(outputStream); imageArray = outputStream.ToArray(); } return(imageArray); }
public void Write(string outputFileName, string inputFolder, string outputFolder, List <byte[]> imageBytes, List <string> imageNames, ContractParameters settings, ProgressDelegate progress) { if (LogHelper.CanDebug()) { LogHelper.Begin("ImageFileWriter.Write"); } try { for (int i = 0; i < imageBytes.Count; ++i) { using (MemoryStream ms = new MemoryStream(imageBytes[i])) { BitmapImage myImage = new BitmapImage(); myImage.BeginInit(); myImage.StreamSource = ms; myImage.EndInit(); using (FileStream fs = new FileStream(Path.Combine(outputFolder, outputFileName + "_" + imageNames[i]), FileMode.Create)) { JpegBitmapEncoder encoder = new JpegBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create(myImage)); encoder.Save(fs); } } } string msg = CultureManager.Instance.GetLocalization("ByCode", "Convert.ImageSaved", "{0} images saved..."); progress(string.Format(msg, imageBytes.Count)); } catch (Exception err) { LogHelper.Manage("ImageFileWriter:Write", err); settings.Result = false; } finally { LogHelper.End("ImageFileWriter.Write"); } }
/// <summary> /// Upload the frame and get the face detect result /// </summary> private async Task <FaceRectangle[]> UploadAndDetectFaces() { if (this.infraredBitmap == null) { return(new FaceRectangle[0]); } BitmapEncoder faceDetectEncoder = new JpegBitmapEncoder(); // create frame from the writable bitmap and add to encoder faceDetectEncoder.Frames.Add(BitmapFrame.Create(this.infraredBitmap)); MemoryStream imageFileStream = new MemoryStream(); faceDetectEncoder.Save(imageFileStream); imageFileStream.Position = 0; if (!faceProcessing) { faceProcessing = true; //Thread.Sleep(300); try { var faces = await _faceServiceClient.DetectAsync(imageFileStream); var faceRects = faces.Select(face => face.FaceRectangle); faceProcessing = false; return(faceRects.ToArray()); } catch (Exception) { faceProcessing = false; return(new FaceRectangle[0]); } } return(new FaceRectangle[0]); }
public void Transform(string file, string subfolder) { CheckInput(file); if (Directory.Exists(file)) // do loop if this is a folder { var files = Directory.GetFiles(file); Transform(files, subfolder); } // todo: provide recursion if (CallBack != null) { CallBack(this, new MyEventArgs(file)); } string path = Path.GetDirectoryName(file); if (subfolder != null) { path = CheckFolder(Path.Combine(path, subfolder)); } var bmpDec = BitmapDecoder.Create(new Uri(file), BitmapCreateOptions.DelayCreation, BitmapCacheOption.None); var bmpEnc = new JpegBitmapEncoder(); bmpEnc.QualityLevel = 100; bmpEnc.Frames.Add(bmpDec.Frames[0]); var oldfn = Path.GetFileName(file); var newfn = Path.ChangeExtension(oldfn, "JPG"); using (var ms = File.Create(Path.Combine(path, newfn), 10000000)) { bmpEnc.Save(ms); if (CallBack != null) { CallBack(this, new MyEventArgs(path + "\\" + newfn)); } } }
public static void PanelToImage(FrameworkElement panel, string filename, ImageFormats format) { int width = (int)panel.ActualWidth; int height = (int)panel.ActualHeight; var pSource = PresentationSource.FromVisual(Application.Current.MainWindow); Matrix m = pSource.CompositionTarget.TransformToDevice; double dpiX = m.M11 * 96; double dpiY = m.M22 * 96; RenderTargetBitmap renderBitmap = new RenderTargetBitmap(width, height, dpiX, dpiY, PixelFormats.Default); //var crop = new CroppedBitmap(renderBitmap, new Int32Rect(50, 50, 250, 250)); // needed otherwise the image output is black //this.Canvas.Measure(new Size(width, height)); //this.Canvas.Arrange(new Rect(new Size(width, height))); renderBitmap.Render(panel); BitmapEncoder encoder; if (format == ImageFormats.JPEG) { encoder = new JpegBitmapEncoder(); } else { encoder = new PngBitmapEncoder(); } encoder.Frames.Add(BitmapFrame.Create(renderBitmap)); using (FileStream file = File.Create(filename)) { encoder.Save(file); file.Flush(); file.Close(); } }
private void ThreadSendImageSetup() { sendImage = new Thread(() => { TcpListener server = new TcpListener(IPAddress.Parse("0.0.0.0"), 12000); server.Start(); byte[] data; byte[] tmp = new byte[1024]; byte[] intBytes; while (true) { var acceptSocket = server.AcceptTcpClient(); var Uri = new Uri(Malnati_PDS.Properties.Settings.Default.Profile_Image, UriKind.Absolute); JpegBitmapEncoder encoder = new JpegBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create(getBitmap(Uri))); using (MemoryStream ms = new MemoryStream()) { encoder.Save(ms); data = ms.ToArray(); } intBytes = BitConverter.GetBytes(data.Length); NetworkStream ns = acceptSocket.GetStream(); try { MemoryStream ms = new MemoryStream(data); ms.CopyTo(ns); } catch (Exception) { } acceptSocket.Close(); } }); }
public static byte[] LoadImage(string strAbsolutePath) { Byte[] arBuffer = null; try { string strFileExtension = Path.GetExtension(strAbsolutePath); BitmapEncoder ImgEncoder = null; switch (strFileExtension) { case ".jpg": case ".jpeg": { ImgEncoder = new JpegBitmapEncoder(); break; } case ".png": { ImgEncoder = new PngBitmapEncoder(); break; } case ".gif": { ImgEncoder = new GifBitmapEncoder(); break; } default: return(null); } Uri AbsoluteUri = new Uri(strAbsolutePath, UriKind.Absolute); BitmapImage BitmapImg = new BitmapImage(AbsoluteUri); ImgEncoder.Frames.Add(BitmapFrame.Create(BitmapImg)); using (MemoryStream ms = new MemoryStream()) { ImgEncoder.Save(ms); arBuffer = ms.ToArray(); } } catch (Exception UnExpectedException) { throw UnExpectedException; } return(arBuffer); }
public static void ExportToFile(BitmapSource graphBitmap) { SaveFileDialog saveDialog = new SaveFileDialog(); const int FilterIndexJpeg = 1; const int FilterIndexPng = 2; saveDialog.Filter = "JPEG|*.jpg|PNG|*.png"; saveDialog.Title = "Save Graph As"; saveDialog.AddExtension = true; saveDialog.ShowDialog(); if (string.IsNullOrEmpty(saveDialog.FileName)) { return; } using (FileStream fileStream = (FileStream)saveDialog.OpenFile()) { BitmapEncoder bitmapEncoder; switch (saveDialog.FilterIndex) { case FilterIndexJpeg: bitmapEncoder = new JpegBitmapEncoder(); break; case FilterIndexPng: bitmapEncoder = new PngBitmapEncoder(); break; default: throw new ArgumentException("Invalid file save type"); } bitmapEncoder.Frames.Add(BitmapFrame.Create(graphBitmap)); bitmapEncoder.Save(fileStream); } }
private void SendVideo() { VisualBrush vb = new VisualBrush(MyVideoCapElement); DrawingVisual drawingVisual = new DrawingVisual(); DrawingContext drawingContext = drawingVisual.RenderOpen(); using (drawingContext) { drawingContext.DrawRectangle(vb, null, new Rect(0, 0, 318, 238)); } double dpiX = 200; double dpiY = 200; RenderTargetBitmap bmp = new RenderTargetBitmap((int)(318 * dpiX / 96), (int)(238 * dpiY / 96), dpiX, dpiY, PixelFormats.Pbgra32); bmp.Render(drawingVisual); JpegBitmapEncoder encoder = new JpegBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create(bmp)); encoder.QualityLevel = 50; byte[] bit = new byte[0]; using (MemoryStream stream = new MemoryStream()) { encoder.Save(stream); bit = stream.ToArray(); stream.Close(); VideoInfo videoInfo = new VideoInfo(); videoInfo.UserId = Main._UserInfo.Id; videoInfo.Data = bit; Main._VideoEngine.Send(NotifyType.Request_VideoChat, videoInfo); } }
private void Save_Click(object sender, RoutedEventArgs e) { //影像檔一系統時間命名 string fileName = "C" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".jpg"; using (FileStream saveImage = new FileStream(fileName, FileMode.CreateNew)) { //從ColorImage.Source處取出一張影像,轉為BitmapSource格式 //儲存到imageSource BitmapSource imageSource = (BitmapSource)FaceImage.Source; //挑選Joint Photographic Experts Group(JPEG)影像編碼器 JpegBitmapEncoder encoder = new JpegBitmapEncoder(); //將取出的影像加到編碼器的影像集 encoder.Frames.Add(BitmapFrame.Create(imageSource)); //儲存影像與後續影像清除工作 encoder.Save(saveImage); saveImage.Flush(); saveImage.Close(); saveImage.Dispose(); } //顯示訊息 Result.Text = "儲存影像檔案" + fileName; }
/// <summary> /// 处理剪切板图片类型 /// </summary> /// <param name="clip"></param> public void HandleImage(ClipModel clip) { string[] files = (string[])Clipboard.GetData(DataFormats.FileDrop); string base64; if (files != null && files.Length > 0 && File.Exists(files[0])) { base64 = Convert.ToBase64String(File.ReadAllBytes(files[0])); clip.DisplayValue = files[0]; } else { BitmapSource bs = Clipboard.GetImage(); JpegBitmapEncoder jpegEncoder = new JpegBitmapEncoder(); jpegEncoder.Frames.Add(BitmapFrame.Create(bs)); MemoryStream ms = new MemoryStream(); jpegEncoder.Save(ms); base64 = Convert.ToBase64String(ms.GetBuffer()); } clip.Type = IMAGE_TYPE; clip.DisplayValue = "image.jpg"; clip.ClipValue = base64; }
//public static void SaveDrawingToFile(Drawing drawing, string fileName, double scale) //{ // var drawingImage = new Image { Source = new DrawingImage(drawing) }; // var width = drawing.Bounds.Width * scale; // var height = drawing.Bounds.Height * scale; // drawingImage.Arrange(new Rect(0, 0, width, height)); // var bitmap = new RenderTargetBitmap((int)width, (int)height, 96, 96, PixelFormats.Pbgra32); // bitmap.Render(drawingImage); // var encoder = new PngBitmapEncoder(); // encoder.Frames.Add(BitmapFrame.Create(bitmap)); // using (var stream = new FileStream(fileName, FileMode.Create)) // { // encoder.Save(stream); // } //} //public static void ToImageFile(this DrawingImage drawingImage, string path) //{ // var image = new Image { Source = drawingImage }; // //int width = (int)drawingImage.Width; // //int height = (int)drawingImage.Height; // var bitmap = new RenderTargetBitmap(1920, 1080, 96, 96, PixelFormats.Pbgra32); // image.Arrange(new Rect(0, 0, bitmap.Width, bitmap.Height)); // bitmap.Render(image); // //String time = System.DateTime.Now.ToString("HH-mm-ss-fff", // // System.Globalization.CultureInfo.CurrentUICulture.DateTimeFormat); // //String path = "RecImages/body_" + time + ".jpg"; // var encoder = new PngBitmapEncoder(); // encoder.Frames.Add(BitmapFrame.Create(bitmap)); // using (var stream = new FileStream(path, FileMode.Create)) // { // encoder.Save(stream); // } //} public static void ToImageFile(this BitmapSource btmSource, string path) { BitmapEncoder encoder; if (path.EndsWith(".jpg") | path.EndsWith(".jpeg")) { encoder = new JpegBitmapEncoder(); } else if (path.EndsWith(".png")) { encoder = new PngBitmapEncoder(); } else { throw new Exception("Only jpg and png files are valid"); } encoder.Frames.Add(BitmapFrame.Create(btmSource)); using (var fs = new FileStream(path, FileMode.Create, FileAccess.Write)) { encoder.Save(fs); } }
private static void SaveImage(string file, BitmapSource bmpScr) { if (file == "") { return; } try { FileStream fileStream = new FileStream(file, FileMode.Create); JpegBitmapEncoder encoder = new JpegBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create(bmpScr)); encoder.QualityLevel = 100; encoder.Save(fileStream); fileStream.Close(); fileStream.Dispose(); } catch (Exception e) { Console.WriteLine("Exception: " + e.Message); } }
public void SaveImage(string fileName, int width = 0, int height = 0) // newly 20130306 { if (width == 0 || height == 0) { width = (int)this.ActualWidth; height = (int)this.ActualHeight; } double dpi = 96; double mag = dpi / 96; double dpix = width / this.ActualWidth * dpi; double dpiy = height / this.ActualHeight * dpi; var bmp = new RenderTargetBitmap(Convert.ToInt32(width * mag), Convert.ToInt32(height * mag), dpix, dpiy, PixelFormats.Pbgra32); bmp.Render(this); using (var fs = new FileStream(fileName, FileMode.OpenOrCreate)) { var encoder = new JpegBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create(bmp)); encoder.Save(fs); } }
// Listing 2-9 private void TakePictureButton_Click(object sender, RoutedEventArgs e) { string fileName = "snapshot.jpg"; if (File.Exists(fileName)) { File.Delete(fileName); } using (FileStream savedSnapshot = new FileStream(fileName, FileMode.CreateNew)) { BitmapSource image = (BitmapSource)ColorImageElement.Source; JpegBitmapEncoder jpgEncoder = new JpegBitmapEncoder(); jpgEncoder.QualityLevel = 70; jpgEncoder.Frames.Add(BitmapFrame.Create(image)); jpgEncoder.Save(savedSnapshot); savedSnapshot.Flush(); savedSnapshot.Close(); savedSnapshot.Dispose(); } }
public string TakePicture() { var control = captureElement; var size = new Size(control.ActualWidth, control.ActualHeight); control.Measure(size); control.Arrange(new Rect(size)); control.UpdateLayout(); var bmp = new RenderTargetBitmap((int)size.Width, (int)size.Height, 96, 96, PixelFormats.Default); bmp.Render(control); var encoder = new JpegBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create(bmp)); var guid = Guid.NewGuid(); var filename = Path.Combine(App.PIC_DIR, $@"sam-{guid}.jpg"); using (Stream stm = File.Create(filename)) { encoder.Save(stm); } return(filename); }
/// <summary> /// Save avatar from the Image /// </summary> private protected virtual byte[] GetNewAvatar() { var bitmapSource = (BitmapSource)UserAvatar.Source; BitmapEncoder encoderToJpeg = new JpegBitmapEncoder(); encoderToJpeg.Frames.Add ( BitmapFrame.Create ( bitmapSource ) ); byte[] newAvatar; using (var memoryStream = new MemoryStream()) { encoderToJpeg.Save ( memoryStream ); newAvatar = memoryStream.ToArray(); } return(newAvatar); }
private byte[] getByteArrayFromImage(BitmapImage imageC) { JpegBitmapEncoder jpegBitmapEncoder = new JpegBitmapEncoder(); if (imageC.UriSource != null) { jpegBitmapEncoder.Frames.Add(BitmapFrame.Create(imageC.UriSource)); } else { jpegBitmapEncoder.Frames.Add(BitmapFrame.Create(imageC)); } using (MemoryStream memoryStream = new MemoryStream()) { jpegBitmapEncoder.Save(memoryStream); byte[] result = memoryStream.ToArray(); memoryStream.Close(); memoryStream.Dispose(); jpegBitmapEncoder = null; imageC = null; return(result); } }
private void SaveImage(object sender, RoutedEventArgs e) { BitmapImage image = (BitmapImage)hold.Source; JpegBitmapEncoder encoder = new JpegBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create(image)); SaveFileDialog sfd = new SaveFileDialog(); string imageFileName = ""; sfd.Filter = "jpg文件(*.jpg)|*.jpg|png文件(*.png)|*.png"; if (sfd.ShowDialog() == true) { imageFileName = sfd.FileName; } else { return; } FileStream fileStream = new FileStream(imageFileName, FileMode.Create, FileAccess.ReadWrite); encoder.Save(fileStream); fileStream.Close(); }
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { if (value is BitmapImage) { BitmapImage image = (BitmapImage)value; byte[] data; JpegBitmapEncoder encoder = new JpegBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create(image)); using (MemoryStream ms = new MemoryStream()) { encoder.Save(ms); data = ms.ToArray(); } return(data); } else { return(null); } }
/// <summary> /// Add another frame /// </summary> /// <param name="nextFrame">The next frame</param> public void Add(BitmapSource nextFrame) { var jbe = new JpegBitmapEncoder(); jbe.QualityLevel = 100; jbe.Frames.Add(BitmapFrame.Create(nextFrame)); jbe.Save(vs); }