private static byte[] CallFunction(byte[] photoBytes, string textDiplay, string bubbleFigure, string bubblePos, string filter) { string assetsPath = ConfigurationManager.AppSettings["ASSETS_ROOT"] ?? @"C:\Temp\images\"; bubbleFigure = bubbleFigure.ToUpper(); bubblePos = bubblePos.ToUpper(); filter = filter.ToUpper(); var imgGen = new MemeImgGen.ImageProcessor(assetsPath); BubbleFigure figure = (BubbleFigure)Enum.Parse(typeof(BubbleFigure), bubbleFigure); BubblePosition position = (BubblePosition)Enum.Parse(typeof(BubblePosition), bubblePos); BubbleFilter bFilter = (BubbleFilter)Enum.Parse(typeof(BubbleFilter), filter); IMatrixFilter bubbleFilter = imgGen.GetFilterByName(bFilter); // 이미지 변환 메서드 호출 byte[] outBytes = imgGen.ImageGenerate(photoBytes, textDiplay, figure, position, bubbleFilter); return(outBytes); }
public IMatrixFilter GetFilterByName(BubbleFilter filter) { // MatrixFilters.Comic는 Enum이 아니라 Property다. // 동적으로 가져오려면 Reflection을 사용해야 하는데 그건 좀 무겁다. switch (filter) { case BubbleFilter.NONE: return(null); case BubbleFilter.COMIC: return(MatrixFilters.Comic); case BubbleFilter.BLACKWHITE: return(MatrixFilters.BlackWhite); case BubbleFilter.GOTHAM: return(MatrixFilters.Gotham); case BubbleFilter.GREYSCALE: return(MatrixFilters.GreyScale); case BubbleFilter.LOMOGRAPH: return(MatrixFilters.Lomograph); case BubbleFilter.POLAROID: return(MatrixFilters.Polaroid); case BubbleFilter.HISATCH: return(MatrixFilters.HiSatch); case BubbleFilter.SEPIA: return(MatrixFilters.Sepia); default: return(MatrixFilters.Lomograph); } }
public static async void Run( [QueueTrigger("meme-que")] VisionInfo info, string BlobName, [Blob("meme-input/{BlobName}", FileAccess.Read)] byte[] inputBlob, [Blob("meme-output/{BlobName}", FileAccess.Write)] Stream outputBlob, TraceWriter log) { string assetsPath = ConfigurationManager.AppSettings["ASSETS_ROOT"] ?? @"C:\Temp\images\"; string bubbleFigure = info.BubbleInfo.Figure.ToUpper(); string bubblePos = info.BubbleInfo.Position.ToUpper(); string filter = info.BubbleInfo.Filter.ToUpper(); string textDisplay = info.BubbleInfo.Text; var imgGen = new MemeImgGen.ImageProcessor(assetsPath); BubbleFigure figure = (BubbleFigure)Enum.Parse(typeof(BubbleFigure), bubbleFigure); BubblePosition position = (BubblePosition)Enum.Parse(typeof(BubblePosition), bubblePos); BubbleFilter bFilter = (BubbleFilter)Enum.Parse(typeof(BubbleFilter), filter); IMatrixFilter bubbleFilter = imgGen.GetFilterByName(bFilter); // 이미지 변환 메서드 호출 byte[] outBytes = imgGen.ImageGenerate(inputBlob, textDisplay, figure, position, bubbleFilter); await outputBlob.WriteAsync(outBytes, 0, outBytes.Length); }