code: public ThumborUrlBuilder filter(String... filters) {
      if (filters.length == 0) {
        throw new IllegalArgumentException("You must provide at least one filter.");
      }
      if (this.filters == null) {
        this.filters = new ArrayList<String>(filters.length);
      }
      for (String filter : filters) {
        if (filter == null || filter.length() == 0) {
          throw new IllegalArgumentException("Filter must not be blank.");
        }
        this.filters.add(filter);
      }
      return this;
    }
docs: Add one or more filters to the image.
  <p>
  If you have custom filters you can supply them as a string. (e.g.
  <code>"my_filter(1,2,3)</code>").
  
  @param filters Filter strings.
  @throws IllegalArgumentException if no arguments supplied or an argument is {@code null}.
  @see #brightness(int)
  @see #contrast(int)
  @see #fill(int)
  @see #frame(String)
  @see #noise(int)
  @see #quality(int)
  @see #rgb(int, int, int)
  @see #roundCorner(int)
  @see #roundCorner(int, int)
  @see #roundCorner(int, int, int)
  @see #sharpen(float, float, boolean)
  @see #watermark(String)
  @see #watermark(ThumborUrlBuilder)
  @see #watermark(String, int, int)
  @see #watermark(ThumborUrlBuilder, int, int)
  @see #watermark(String, int, int, int)
  @see #watermark(ThumborUrlBuilder, int, int, int)