ImageResizer
3.4.0
|
Encapsulates the state of an image being resized. Can be used to simulate a resize as well as actually perform one. All code should ignore when Bitmaps and Graphics objects are null, and go about simulating all the mathematical functions as normal. More...
Public Member Functions | |
ImageState (ResizeSettings settings, Size originalSize, bool transparencySupported) | |
void | ConvertIfCMYK () |
If 'sourceBitmap' is CMYK and preRenderBitmap is null, converts sourceBitmap to RGB and stores in 'preRenderBitmap' More... | |
void | EnsurePreRenderBitmap () |
Clones 'sourceBitmap' into 'preRenderBitmap' if null. More... | |
void | ApplyCropping () |
Applies copyRect (if it will have any effect), placing the result in preRenderBitmap, and resetting copyRect More... | |
void | EnsureRGBA () |
Ensures that the working bitmap is in 32bpp RGBA format - otherwise it is converted. More... | |
void | Dispose () |
Disposes sourceBitmap, destGraphics, destBitmap, and copyAttributes if they are non-null More... | |
Public Attributes | |
ResizeSettings | settings |
The commands to apply to the bitmap More... | |
Size | originalSize |
The original size of the source bitmap. Use this instead of accessing the bitmap directly for this information, since the bitmap may not always be available More... | |
bool | supportsTransparency = true |
Rendering choices can depend on whether the output format supports transparency. More... | |
LayoutBuilder | layout = new LayoutBuilder() |
The layout object. Used for calculated and flowing the layout of the various rings around the image (padding, border, effect, margin, etc). More... | |
Size | destSize |
The size of the target bitmap image. Set after all sizing operations have completed. More... | |
Size | finalSize |
The dimensions of the bitmap afer all operations have been applied to it (Calling FlipRotate can change the bitmap dimensions). More... | |
RectangleF | copyRect |
The rectangular portion of the source image to copy More... | |
Bitmap | sourceBitmap |
The source bitmap. If null, skip drawing commands, but continue layout logic. More... | |
Bitmap | preRenderBitmap |
An optional intermediate bitmap, created by plugins who need to process the source bitmap it gets rendered to destBitmap. If defined, it should be used instead of sourceBitmap during RenderImage(), and disposed immediately after use. More... | |
Bitmap | destBitmap |
The destination bitmap. If null, skip drawing commands, but continue layout logic. More... | |
Graphics | destGraphics |
A graphics object to write to the destination bitmap. If null, skip drawing commands, but continue layout logic. More... | |
ImageAttributes | copyAttibutes |
Allows color correction/modification during the image copy. More... | |
Properties | |
SizeF | copySize [get] |
(read-only) Same as copyRect.Size, convenience property. More... | |
Dictionary< string, object > | Data [get] |
Allows extensions to store data along with the image state More... | |
Encapsulates the state of an image being resized. Can be used to simulate a resize as well as actually perform one. All code should ignore when Bitmaps and Graphics objects are null, and go about simulating all the mathematical functions as normal.
Definition at line 15 of file ImageState.cs.
|
inline |
Applies copyRect (if it will have any effect), placing the result in preRenderBitmap, and resetting copyRect
Definition at line 99 of file ImageState.cs.
Referenced by ImageResizer.Plugins.AdvancedFilters.AdvancedFilters.PreRenderImage().
|
inline |
If 'sourceBitmap' is CMYK and preRenderBitmap
is null, converts sourceBitmap
to RGB and stores in 'preRenderBitmap'
Definition at line 76 of file ImageState.cs.
|
inline |
Disposes sourceBitmap, destGraphics, destBitmap, and copyAttributes if they are non-null
Definition at line 202 of file ImageState.cs.
|
inline |
Clones 'sourceBitmap' into 'preRenderBitmap' if null.
Definition at line 89 of file ImageState.cs.
|
inline |
Ensures that the working bitmap is in 32bpp RGBA format - otherwise it is converted.
Definition at line 118 of file ImageState.cs.
ImageAttributes ImageResizer.Resizing.ImageState.copyAttibutes |
Allows color correction/modification during the image copy.
Definition at line 186 of file ImageState.cs.
Referenced by ImageResizer.ImageBuilder.CreateImageAttribues(), ImageResizer.Plugins.SimpleFilters.SimpleFilters.PostCreateImageAttributes(), ImageResizer.Plugins.Basic.SpeedOrQuality.RenderImage(), and ImageResizer.ImageBuilder.RenderImage().
RectangleF ImageResizer.Resizing.ImageState.copyRect |
The rectangular portion of the source image to copy
Definition at line 57 of file ImageState.cs.
Referenced by ImageResizer.ImageBuilder.LayoutImage(), ImageResizer.Plugins.WhitespaceTrimmer.WhitespaceTrimmerPlugin.PostLayoutImage(), ImageResizer.Plugins.Basic.SpeedOrQuality.RenderImage(), and ImageResizer.ImageBuilder.RenderImage().
Bitmap ImageResizer.Resizing.ImageState.destBitmap |
The destination bitmap. If null, skip drawing commands, but continue layout logic.
Definition at line 178 of file ImageState.cs.
Referenced by ImageResizer.Plugins.AdvancedFilters.AdvancedFilters.PostRenderImage(), ImageResizer.Plugins.RedEye.RedEyePlugin.PostRenderImage(), ImageResizer.Plugins.Faces.FacesPlugin.PostRenderImage(), and ImageResizer.ImageBuilder.ProcessFinalBitmap().
Graphics ImageResizer.Resizing.ImageState.destGraphics |
A graphics object to write to the destination bitmap. If null, skip drawing commands, but continue layout logic.
Definition at line 182 of file ImageState.cs.
Referenced by ImageResizer.ImageBuilder.FlushChanges(), ImageResizer.Plugins.SimpleFilters.SimpleFilters.PostRenderImage(), ImageResizer.Plugins.Basic.Trial.PreFlushChanges(), ImageResizer.Plugins.FreeImageScaling.FreeImageScalingPlugin.PreRenderImage(), ImageResizer.Plugins.SeamCarving.SeamCarvingPlugin.PreRenderImage(), ImageResizer.ImageBuilder.RenderBackground(), ImageResizer.ImageBuilder.RenderBorder(), ImageResizer.Plugins.Basic.DropShadow.RenderEffects(), ImageResizer.Plugins.Basic.SpeedOrQuality.RenderImage(), ImageResizer.ImageBuilder.RenderImage(), and ImageResizer.ImageBuilder.RenderPadding().
Size ImageResizer.Resizing.ImageState.destSize |
The size of the target bitmap image. Set after all sizing operations have completed.
Definition at line 47 of file ImageState.cs.
Referenced by ImageResizer.Plugins.Watermark.Layer.CalculateLayerCoordinates(), ImageResizer.ImageBuilder.EndLayout(), ImageResizer.ImageBuilder.PrepareDestinationBitmap(), and ImageResizer.ImageBuilder.ProcessFinalBitmap().
Size ImageResizer.Resizing.ImageState.finalSize |
The dimensions of the bitmap afer all operations have been applied to it (Calling FlipRotate can change the bitmap dimensions).
Definition at line 51 of file ImageState.cs.
Referenced by ImageResizer.ImageBuilder.ProcessFinalBitmap().
LayoutBuilder ImageResizer.Resizing.ImageState.layout = new LayoutBuilder() |
The layout object. Used for calculated and flowing the layout of the various rings around the image (padding, border, effect, margin, etc).
Definition at line 42 of file ImageState.cs.
Referenced by ImageResizer.Plugins.Watermark.Layer.CalculateLayerCoordinates(), ImageResizer.ImageBuilder.EndLayout(), ImageResizer.ImageBuilder.LayoutNormalize(), ImageResizer.ImageBuilder.LayoutRotate(), ImageResizer.Plugins.Faces.FacesPlugin.PostRenderImage(), ImageResizer.Plugins.Basic.Trial.PreFlushChanges(), ImageResizer.ImageBuilder.RenderBackground(), ImageResizer.Plugins.Basic.DropShadow.RenderEffects(), and ImageResizer.ImageBuilder.RenderPadding().
Size ImageResizer.Resizing.ImageState.originalSize |
The original size of the source bitmap. Use this instead of accessing the bitmap directly for this information, since the bitmap may not always be available
Definition at line 30 of file ImageState.cs.
Referenced by ImageResizer.Plugins.CropAround.CropAroundPlugin.LayoutImage(), ImageResizer.Plugins.SeamCarving.SeamCarvingPlugin.LayoutImage(), ImageResizer.ImageBuilder.LayoutImage(), and ImageResizer.Plugins.RedEye.RedEyePlugin.PostRenderImage().
Bitmap ImageResizer.Resizing.ImageState.preRenderBitmap |
An optional intermediate bitmap, created by plugins who need to process the source bitmap it gets rendered to destBitmap. If defined, it should be used instead of sourceBitmap during RenderImage(), and disposed immediately after use.
Definition at line 71 of file ImageState.cs.
Referenced by ImageResizer.Plugins.FreeImageScaling.FreeImageScalingPlugin.PreRenderImage(), ImageResizer.Plugins.AdvancedFilters.AdvancedFilters.PreRenderImage(), ImageResizer.Plugins.SeamCarving.SeamCarvingPlugin.PreRenderImage(), ImageResizer.Plugins.Basic.SpeedOrQuality.RenderImage(), and ImageResizer.ImageBuilder.RenderImage().
ResizeSettings ImageResizer.Resizing.ImageState.settings |
The commands to apply to the bitmap
Definition at line 25 of file ImageState.cs.
Referenced by ImageResizer.Plugins.AdvancedFilters.AdvancedFilters.ApplyFiltersTo(), ImageResizer.ImageBuilder.LayoutBorder(), ImageResizer.Plugins.CropAround.CropAroundPlugin.LayoutImage(), ImageResizer.Plugins.SeamCarving.SeamCarvingPlugin.LayoutImage(), ImageResizer.ImageBuilder.LayoutImage(), ImageResizer.ImageBuilder.LayoutMargin(), ImageResizer.ImageBuilder.LayoutPadding(), ImageResizer.ImageBuilder.LayoutRotate(), ImageResizer.Plugins.SimpleFilters.SimpleFilters.PostCreateImageAttributes(), ImageResizer.Plugins.Faces.FacesPlugin.PostPrepareSourceBitmap(), ImageResizer.Plugins.RedEye.RedEyePlugin.PostRenderImage(), ImageResizer.Plugins.Faces.FacesPlugin.PostRenderImage(), ImageResizer.ImageBuilder.PrepareSourceBitmap(), ImageResizer.Plugins.AdvancedFilters.AdvancedFilters.PreRenderImage(), ImageResizer.Plugins.SeamCarving.SeamCarvingPlugin.PreRenderImage(), ImageResizer.ImageBuilder.ProcessFinalBitmap(), ImageResizer.Plugins.RedEye.RedEyePlugin.Render(), ImageResizer.Plugins.Faces.FacesPlugin.Render(), ImageResizer.ImageBuilder.RenderBackground(), ImageResizer.ImageBuilder.RenderBorder(), ImageResizer.Plugins.Basic.SpeedOrQuality.RenderImage(), ImageResizer.ImageBuilder.RenderImage(), and ImageResizer.ImageBuilder.RenderPadding().
Bitmap ImageResizer.Resizing.ImageState.sourceBitmap |
The source bitmap. If null, skip drawing commands, but continue layout logic.
Definition at line 66 of file ImageState.cs.
Referenced by ImageResizer.Plugins.AdvancedFilters.AdvancedFilters.ApplyFiltersTo(), ImageResizer.Plugins.WhitespaceTrimmer.WhitespaceTrimmerPlugin.LayoutImage(), ImageResizer.Plugins.SeamCarving.SeamCarvingPlugin.LayoutImage(), ImageResizer.Plugins.Faces.FacesPlugin.PostPrepareSourceBitmap(), ImageResizer.Plugins.RedEye.RedEyePlugin.PostRenderImage(), ImageResizer.ImageBuilder.PrepareDestinationBitmap(), ImageResizer.ImageBuilder.PrepareSourceBitmap(), ImageResizer.Plugins.SimpleFilters.SimpleFilters.PreRenderImage(), ImageResizer.Plugins.AdvancedFilters.AdvancedFilters.PreRenderImage(), ImageResizer.Plugins.SeamCarving.SeamCarvingPlugin.PreRenderImage(), ImageResizer.Plugins.RedEye.RedEyePlugin.Render(), and ImageResizer.Plugins.Faces.FacesPlugin.Render().
bool ImageResizer.Resizing.ImageState.supportsTransparency = true |
Rendering choices can depend on whether the output format supports transparency.
Definition at line 36 of file ImageState.cs.
Referenced by ImageResizer.ImageBuilder.RenderBackground().
|
get |
(read-only) Same as copyRect.Size, convenience property.
Definition at line 61 of file ImageState.cs.
|
get |
Allows extensions to store data along with the image state
Definition at line 192 of file ImageState.cs.
Referenced by ImageResizer.Plugins.WhitespaceTrimmer.WhitespaceTrimmerPlugin.PostLayoutImage(), and ImageResizer.Plugins.SeamCarving.SeamCarvingPlugin.PreRenderImage().