I just prefer method 2.
I don't know where documentation is for image's attributes and methods are
but using the below code it prints out all the methods and attributes for image
methods = []
for method in dir(image):
if hasattr(image, method):
methods.append(method)
pdb.gimp_message(str(methods))
it prints out this list
['ID', '__class__', '__cmp__', '__delattr__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'active_channel', 'active_drawable', 'active_layer', 'active_vectors', 'add_channel', 'add_hguide', 'add_layer', 'add_vguide', 'attach_new_parasite', 'base_type', 'channels', 'clean_all', 'crop', 'delete_guide', 'dirty', 'disable_undo', 'duplicate', 'enable_undo', 'filename', 'find_next_guide', 'flatten', 'floating_sel_attached_to', 'floating_selection', 'free_shadow', 'get_channel_by_tattoo', 'get_component_active', 'get_component_visible', 'get_guide_orientation', 'get_guide_position', 'get_layer_by_tattoo', 'height', 'insert_channel', 'insert_layer', 'layers', 'lower_channel', 'lower_layer', 'lower_layer_to_bottom', 'merge_down', 'merge_visible_layers', 'name', 'new_layer', 'parasite_attach', 'parasite_detach', 'parasite_find', 'parasite_list', 'pick_correlate_layer', 'raise_channel', 'raise_layer', 'raise_layer_to_top', 'remove_channel', 'remove_layer', 'resize', 'resize_to_layers', 'resolution', 'scale', 'selection', 'set_component_active', 'set_component_visible', 'tattoo_state', 'undo_freeze', 'undo_group_end', 'undo_group_start', 'undo_is_enabled', 'undo_thaw', 'unit', 'unset_active_channel', 'uri', 'vectors', 'width']
Some are methods, i guess you'll just to play around with them to get the right parameters going.
or a link to documentation would be nice usually, the methods need parameters just like their pdb.methods equivalent without the image parameter since this already belongs to image.