/// <summary> /// Creates new conversion data object (an edge in a graph). /// </summary> /// <param name="source">Source vertex.</param> /// <param name="destination">Destination vertex.</param> /// <param name="convertFunc">Data conversion function.</param> /// <param name="forceSequential">Force conversion to execute sequentially.</param> /// <param name="createFunc">Destination image creation function.</param> /// <param name="cost">Conversion cost.</param> public ConversionData(T source, T destination, ConvertDataFunc convertFunc, bool forceSequential = false, CreateImageFunc createFunc = null, ConversionCost cost = ConversionCost.DataConvert) : base(source, destination) { this.CreateFunc = createFunc; this.ConvertFunc = convertFunc; this.ForceSequential = forceSequential; this.cost = cost; }
/// <summary> /// Returns conversion data when source data has to be converted. /// </summary> /// <param name="source">Source's image color info.</param> /// <param name="destination">Destination image color info.</param> /// <param name="convertFunc">Data conversion function.</param> /// <param name="forceSequential">Force conversion to execute sequentially.</param> /// <returns>Conversion info.</returns> public static ConversionData <ColorInfo> AsConvertData(ColorInfo source, ColorInfo destination, ConvertDataFunc convertFunc, bool forceSequential = false) { return(new ConversionData <ColorInfo>(source, destination, convertFunc, forceSequential, (srcImg, destColor) => Image.Create(destColor, srcImg.Width, srcImg.Height), ConversionCost.DataConvert)); }