internal static T ConvertColor <T>(Color color, string destinationProfile, ColorManagementEngine engine = ColorManagementEngine.LittleCms, ColorProfile targetDeviceProfile = null, ColorTransformationIntent transformationIntent = ColorTransformationIntent.Perceptual) where T : Color, new() { return(ConvertColor <T>(color, new ColorProfile(destinationProfile), engine, targetDeviceProfile, transformationIntent)); }
public static T To <T>(this Color color, ColorProfile destinationProfile = null, ColorManagementEngine engine = ColorManagementEngine.LittleCms, ColorProfile targetDeviceProfile = null, ColorTransformationIntent transformationIntent = ColorTransformationIntent.Perceptual) where T : Color, new() { return(ColorExtension.ConvertColor <T>(color, destinationProfile, engine, targetDeviceProfile, transformationIntent)); }
internal static T ConvertColor <T>(Color color, ColorProfile destinationProfile, ColorManagementEngine engine = ColorManagementEngine.LittleCms, ColorProfile targetDeviceProfile = null, ColorTransformationIntent transformationIntent = ColorTransformationIntent.Perceptual) where T : Color, new() { if (destinationProfile == null) { Type colorType = typeof(T); if (colorType != typeof(LabColor) && colorType != typeof(Lab16Color)) { throw new ArgumentException("Destination profile should be specified for converting to non-absolute color space (LabColor or Lab16Color)", "destinationProfile"); } } using (var cc = new Aurigma.GraphicsMill.Transforms.ColorConverter()) { cc.DestinationProfile = destinationProfile; cc.TargetDeviceProfile = targetDeviceProfile; cc.ColorManagementEngine = engine; cc.TransformationIntent = transformationIntent; T tempColor = new T(); cc.DestinationPixelFormat = tempColor.PixelFormat; return((T)cc.ConvertColor(color, color.Profile)); } }