@NotNull @Override public JsonElement serialize(@Nullable ClarifaiURLImage value, @NotNull Gson gson) { if (value == null) { return JsonNull.INSTANCE; } return new JSONObjectBuilder() .add("url", value.url().toString()) .addIfNotNull("crop", toJson(gson, value.crop(), Crop.class)) .addIfNotNull("allow_duplicate_url", value.allowDuplicateUrl()).build(); } };
@NotNull public static ClarifaiImage deserialize(ImageOuterClass.Image image) { return !image.getUrl().equals("") ? ClarifaiURLImage.deserializeInner(image) : ClarifaiFileImage.deserializeInner(image); }
@Nullable @Override public ClarifaiURLImage deserialize( @NotNull JsonElement json, @NotNull TypeToken<ClarifaiURLImage> type, @NotNull Gson gson) { final JsonObject root = InternalUtil.assertJsonIs(json, JsonObject.class); return ClarifaiImage.of(root.get("url").getAsString()) .withCrop(gson.fromJson(root.get("crop"), Crop.class)); } };
@NotNull @Override public ImageOuterClass.Image serialize(boolean allowDuplicateUrl) { ImageOuterClass.Image image = ImageOuterClass.Image.newBuilder() .setUrl(url().toString()) .setAllowDuplicateUrl(allowDuplicateUrl) .build(); return image; }
@NotNull private PredictRequest<Prediction> makePredictRequest() { return client.predict(client.getDefaultModels().travelModel().id()) .withInputs( ClarifaiInput.forInputValue( ClarifaiImage.of(FAMILY_IMAGE_URL) .withAllowDuplicateUrl(false))); } }
@Retry @Test public void t16b_predictWithModel_00() { assertSuccess(client.getDefaultModels().generalModel().predict() .withInputs(ClarifaiInput.forInputValue(ClarifaiImage.of(METRO_NORTH_IMAGE_URL) .withCrop(Crop.create() .top(0.1F) .bottom(0.8F) ) ))); }
@Test public void cropping() { client.addInputs() .plus( ClarifaiInput.forInputValue( ClarifaiImage.of("@@sampleTrain") .withCrop(Crop.create() .top(0.2F) .left(0.4F) .bottom(0.3F) .right(0.6F) ) ) ) .allowDuplicateURLs(true) .executeSync(); }