Have you looked into the Datasources->Image Services->Rendering Rule sample? It uses a RasterFunction class used to set a rendering rule on the image service.
RasterFunction renderingRule = new RasterFunction();
renderingRule.setFunctionName(selectedFunction);
if ("ShadedRelief".equals(selectedFunction)) {
// ShadedRelief
renderingRule.setVariableName("Raster");
Map<String, Object> mapArguments = new HashMap<String, Object>();
mapArguments.put("Azimuth", 215);
mapArguments.put("Altitude", 60.0);
mapArguments.put("ZFactor", 4);
mapArguments.put("Colormap", createColorMap());
renderingRule.setArgumentsAsMap(mapArguments);
} else if ("Hillshade".equals(selectedFunction)) {
// Hillshade
renderingRule.setVariableName("DEM");
Map<String, Object> mapArguments = new HashMap<String, Object>();
mapArguments.put("Azimuth", 215);
mapArguments.put("Altitude", 60.0);
mapArguments.put("ZFactor", 4);
renderingRule.setArgumentsAsMap(mapArguments);
} else {
// selected function is "Slope"
renderingRule.setVariableName("DEM");
Map<String, Object> mapArguments = new HashMap<String, Object>();
mapArguments.put("ZFactor", 4);
renderingRule.setArgumentsAsMap(mapArguments);
}
imageServiceLayer.setRenderingRule(renderingRule);
imageServiceLayer.refresh();