Laedit
.Extensions.BitmapSourceExtensions
News
About
Softwares
Framework
Utils
Contact-us
Laedit
CodeDocumentation
Collections
Generic
MultiMap
Configuration
DynamicSettings
Convert
Extensions
ArrayExtensions
BitmapExtensions
BitmapSourceExtensions
EnumExtensions
EventHandlerExtensions
ListExtensions
ListViewExtensions
ObjectExtensions
SecureStringExtensions
StringExtensions
WindowExtensions
Games
Dice
DicesRoller
IO
Drive
Log
LogFile
USBManager
FilesProvider
Net
FTPClient
Web
Security
ConfigurationFileProtection
Cryptography
AxCryptHelper
Hash
Windows
WPF
Controls
WaitBox
PathNavigator
Converters
FileNameToExtensionConverter
XNameToStringConverter
Skin
DictionaryResourceGenerator
SkinManager
Skins
AquaGel
Glossy
Monochrome
Xml
Linq
IXElementable
Description
Code
/* ---------------------------------------------------------------------------- * Laedit.Extensions : Laedit.Extensions * ---------------------------------------------------------------------------- * File: BitmapSourceExtensions.cs * Author: Jérémie Bertrand * Last modification: 16/08/2010 * ---------------------------------------------------------------------------- * Copyright 2010 Jérémie Bertrand * Licensed under the Apache License, Version 2.0 (the "License"); * You may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ---------------------------------------------------------------------------- */ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Media.Imaging; using System.IO; namespace Laedit.Extensions.BitmapSourceExtensions { /// <summary> /// Extensions for BitmapSource /// </summary> public static class BitmapSourceExtensions { /// <summary> /// Saves as JPEG. /// </summary> /// <param name="bitmapSource">The bitmap source.</param> /// <param name="fileName">Name of the file.</param> /// <param name="flipHorizontal">if set to <c>true</c> [flip horizontal].</param> /// <param name="flipVertical">if set to <c>true</c> [flip vertical].</param> /// <param name="quality">The quality.</param> /// <param name="rotation">The rotation.</param> public static void SaveAsJPEG(this System.Windows.Media.Imaging.BitmapSource bitmapSource, System.String fileName, Boolean flipHorizontal = false, Boolean flipVertical = false, Int32 quality = 30, Rotation rotation = Rotation.Rotate0) { using (FileStream stream = new FileStream(fileName, FileMode.Create)) { JpegBitmapEncoder encoder = new JpegBitmapEncoder(); encoder.FlipHorizontal = flipHorizontal; encoder.FlipVertical = flipVertical; encoder.QualityLevel = quality; encoder.Rotation = rotation; encoder.Frames.Add(BitmapFrame.Create(bitmapSource)); encoder.Save(stream); } } /// <summary> /// Convert the BitmapSource into a bitmap. /// </summary> /// <param name="bitmapSource">The bitmap source.</param> /// <returns>The bitmap</returns> public static System.Drawing.Bitmap ToBitmap(this System.Windows.Media.Imaging.BitmapSource bitmapSource) { System.Drawing.Bitmap bitmap = null; using (MemoryStream outStream = new MemoryStream()) { // from System.Media.BitmapImage to System.Drawing.Bitmap BitmapEncoder enc = new BmpBitmapEncoder(); enc.Frames.Add(BitmapFrame.Create(bitmapSource)); enc.Save(outStream); bitmap = new System.Drawing.Bitmap(outStream); } return bitmap; } } }