static void Main(string[] args) // usage transformerTest.exe PathToImage flip/Rotation x y width height { string path = args[0]; string paramString = args[1] + ' ' + args[2]; Transformer.Model.TransformationParametrs transformParametrs = Transformer.Model.TransformationParametrs.Parse(paramString); byte[] image = File.ReadAllBytes(path); ImageTransformer transformer = new ImageTransformer(); byte[] result = transformer.Transform(image, transformParametrs); File.WriteAllBytes("out.png", result); }
/// <summary> /// Transform the input byte with the image transformer /// </summary> /// <param name="input"></param> /// <param name="transformer"></param> /// <returns></returns> public static byte[] Transform(this byte[] input, ImageTransformer transformer) { return(transformer.Transform(input)); }
private void ProcessFullRequest(HttpResponse response) { using (MemoryStream memoryStream = new MemoryStream()) { ImageTransformer imageTransformer = new ImageTransformer(); imageTransformer.GraphicsQuality = ImageSettings.GraphicsQuality; imageTransformer.Copyright = ImageSettings.Copyright; imageTransformer.CopyrightSize = ImageSettings.CopyrightSize; imageTransformer.MaxWidth = ImageSettings.MaxWidth; imageTransformer.MaxHeight = ImageSettings.MaxHeight; imageTransformer.Grayscale = ImageSettings.Grayscale; imageTransformer.Negative = ImageSettings.Negative; imageTransformer.Sepia = ImageSettings.Sepia; imageTransformer.Clip = ImageSettings.Clip; imageTransformer.Quantize = ImageSettings.Quantize; imageTransformer.MaintainPalette = ImageSettings.MaintainPalette; imageTransformer.Brightness = ImageSettings.Brightness; imageTransformer.Contrast = ImageSettings.Contrast; imageTransformer.Opacity = ImageSettings.Opacity; string customTransform = ImageSettings.CustomTransform; if (!string.IsNullOrEmpty(customTransform)) { string customTransformClassName = config.GetImageTransformClassName(customTransform); ImageTransform customTransformClass = ImageTransformFactory.Create(customTransformClassName); ICustomDataConsumer customTransFormClassAsCustomDataConsumer = customTransformClass as ICustomDataConsumer; if (customTransFormClassAsCustomDataConsumer != null) { customTransFormClassAsCustomDataConsumer.SetCustomData(ImageSettings.CustomData); } imageTransformer.CustomTransforms.Add(customTransformClass); } ImageRetriever.EnsureImage(); using (Image originalImage = ImageRetriever.GetImage()) using (Image resizedBitmap = imageTransformer.Transform(originalImage)) { long outputQuality = ImageSettings.OutputQuality; ImageFormat imageFormat = ImageMetadata.ImageFormat; resizedBitmap.SaveToMemoryStream(memoryStream, imageFormat, outputQuality); } memoryStream.Capacity = (int)memoryStream.Position; if (memoryStream.Capacity > 0) { if (ImageSettings.ServerCacheTimeout > 0) { ImageCacheBroker.AddImageBytes(memoryStream.ToArray()); } response.ContentType = ImageMetadata.ContentType; response.AppendHeader("Content-Disposition", string.Concat("inline; filename=\"", ImageMetadata.SaveName, "\"")); response.AppendHeader("Content-Length", memoryStream.Capacity.ToString(CultureInfo.InvariantCulture)); response.Cache.SetCacheability(HttpCacheability.Public); response.Cache.SetAllowResponseInBrowserHistory(true); response.Cache.SetLastModified(ImageMetadata.LastModifiedDate); response.Cache.SetValidUntilExpires(true); response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(ImageSettings.ClientCacheTimeout)); memoryStream.WriteTo(response.OutputStream); } } }
/// <summary> /// Transform the image bytes using a transformer /// </summary> /// <param name="transformer"></param> /// <returns></returns> public VirtualImage Transform(ImageTransformer transformer) { Content = transformer.Transform(Content); return(this); }