private List<Filter> initColorTransform(ColorSpace sourceColor, List<Filter> extraFilters, Sink sink) { List<Filter> filters = new ArrayList<Filter>(); for (Filter filter : extraFilters) { ColorSpace inputColor = filter.getInputColor(); if (!sourceColor.matches(inputColor)) { filters.add(new ColorTransformFilter(inputColor)); } filters.add(filter); if (filter.getOutputColor() != ColorSpace.SAME) sourceColor = filter.getOutputColor(); } ColorSpace inputColor = sink.getInputColor(); if (inputColor != null && inputColor != sourceColor) filters.add(new ColorTransformFilter(inputColor)); return filters; }