anchor.diff:  
   check_image_file(ImageFile) when is_binary(ImageFile) ->
     %% convert binary to normal string list
  -  lager:debug('ImageFile Binary ~p', [ImageFile]),
     StringList = binary_to_list(ImageFile),
  -  lager:debug('ImageFile String from bin ~p', [StringList]),
     %% now run rest of checks
     check_image_file(StringList);
   check_image_file(ImageFile) when is_list(ImageFile) ->
  -  lager:debug('got to ImageFile String ~p', [ImageFile]),
     check_illegal_filename_chars(ImageFile),
     %% all good so return string
     ImageFile;
  
positive.code:   %% recurse thru rest of char
    check_illegal_filename_chars( T ).
  
  is_good_char(C)
          when not is_integer(C) ->
    erlang:error(input_has_bad_char);
  is_good_char(C)
          when C < 45 ->
    erlang:error(input_has_bad_char);
  is_good_char(C)
          when C =:= 47 ->
    erlang:error(input_has_bad_slash_char);
  is_good_char(C)
          when C > 57, C < 65 ->
    erlang:error(input_has_bad_char);
  is_good_char(C)
          when C > 90, C < 95 ->
    erlang:error(input_has_bad_char);
  is_good_char(C)
          when C =:= 96 ->
    erlang:error(input_has_bad_acc_char);
  is_good_char(C)
          when C > 122 ->
    erlang:error(input_has_bad_char);
  is_good_char(_C) ->
    %% this char ok
    ok.
  
  get_color_alg(BinaryMap) ->
    InitalColorAlg  = maps:get(<<"colorAlg">>, BinaryMap),
  
negative.code: 
  -export([ jason2atom/1
          ]).
  
  %% for test
  - export( [ is_good_char/1 ] ).
  
  jason2atom(BinaryMap) ->
    Width  = get_width(BinaryMap),
  