/** * Centers an image inside of the bounds specified by {@link #resize(int, int)}. This scales * the image so that both dimensions are equal to or less than the requested bounds. */ @NonNull public RequestCreator centerInside() { data.centerInside(); return this; }
@Test public void centerInsideResultMatchesTargetSizeWhileDesiredWidthIs0() { Request request = new Request.Builder(URI_1).resize(0, 642).centerInside().build(); Bitmap source = Bitmap.createBitmap(640, 640, ARGB_8888); Bitmap result = transformResult(request, source, 0); assertThat(result.getWidth()).isEqualTo(642); assertThat(result.getHeight()).isEqualTo(642); }
@Test public void centerInsideResultMatchesTargetSizeWhileDesiredHeightIs0() { Request request = new Request.Builder(URI_1).resize(1080, 0).centerInside().build(); Bitmap source = Bitmap.createBitmap(640, 640, ARGB_8888); Bitmap result = transformResult(request, source, 0); assertThat(result.getWidth()).isEqualTo(1080); assertThat(result.getHeight()).isEqualTo(1080); }
@Test public void centerInsideWideTooSmall() { Bitmap source = Bitmap.createBitmap(10, 20, ARGB_8888); Request data = new Request.Builder(URI_1).resize(50, 50).centerInside().build(); Bitmap result = transformResult(data, source, 0); ShadowBitmap shadowBitmap = shadowOf(result); assertThat(shadowBitmap.getCreatedFromBitmap()).isSameAs(source); Matrix matrix = shadowBitmap.getCreatedFromMatrix(); ShadowMatrix shadowMatrix = shadowOf(matrix); assertThat(shadowMatrix.getPreOperations()).containsExactly("scale 2.5 2.5"); }
@Test public void centerInsideTallTooSmall() { Bitmap source = Bitmap.createBitmap(20, 10, ARGB_8888); Request data = new Request.Builder(URI_1).resize(50, 50).centerInside().build(); Bitmap result = transformResult(data, source, 0); ShadowBitmap shadowBitmap = shadowOf(result); assertThat(shadowBitmap.getCreatedFromBitmap()).isSameAs(source); Matrix matrix = shadowBitmap.getCreatedFromMatrix(); ShadowMatrix shadowMatrix = shadowOf(matrix); assertThat(shadowMatrix.getPreOperations()).containsExactly("scale 2.5 2.5"); }
@Test public void centerInsideWideTooLarge() { Bitmap source = Bitmap.createBitmap(50, 100, ARGB_8888); Request data = new Request.Builder(URI_1).resize(50, 50).centerInside().build(); Bitmap result = transformResult(data, source, 0); ShadowBitmap shadowBitmap = shadowOf(result); assertThat(shadowBitmap.getCreatedFromBitmap()).isSameAs(source); Matrix matrix = shadowBitmap.getCreatedFromMatrix(); ShadowMatrix shadowMatrix = shadowOf(matrix); assertThat(shadowMatrix.getPreOperations()).containsExactly("scale 0.5 0.5"); }
@Test public void centerInsideTallTooLarge() { Bitmap source = Bitmap.createBitmap(100, 50, ARGB_8888); Request data = new Request.Builder(URI_1).resize(50, 50).centerInside().build(); Bitmap result = transformResult(data, source, 0); ShadowBitmap shadowBitmap = shadowOf(result); assertThat(shadowBitmap.getCreatedFromBitmap()).isSameAs(source); Matrix matrix = shadowBitmap.getCreatedFromMatrix(); ShadowMatrix shadowMatrix = shadowOf(matrix); assertThat(shadowMatrix.getPreOperations()).containsExactly("scale 0.5 0.5"); }
@Test public void simpleResizeWithCenterInsideAndEncryption() { Request input = new Request.Builder(IMAGE_URI).resize(50, 50).centerInside().build(); Request output = secureTransformer.transformRequest(input); assertThat(output).isNotSameAs(input); assertThat(output.hasSize()).isFalse(); assertThat(output.centerInside).isFalse(); String expected = Thumbor.create(HOST, KEY).buildImage(IMAGE).resize(50, 50).fitIn().toUrl(); assertThat(output.uri.toString()).isEqualTo(expected); } }
@Test public void calculateInSampleSizeResizeCenterInside() { final BitmapFactory.Options options = new BitmapFactory.Options(); Request data = new Request.Builder(URI_1).centerInside().resize(100, 100).build(); calculateInSampleSize(data.targetWidth, data.targetHeight, 400, 200, options, data); assertThat(options.inSampleSize).isEqualTo(4); }
@Test public void simpleResizeWithCenterInside() { Request input = new Request.Builder(IMAGE_URI).resize(50, 50).centerInside().build(); Request output = transformer.transformRequest(input); assertThat(output).isNotSameAs(input); assertThat(output.hasSize()).isFalse(); assertThat(output.centerInside).isFalse(); String expected = Thumbor.create(HOST).buildImage(IMAGE).resize(50, 50).fitIn().toUrl(); assertThat(output.uri.toString()).isEqualTo(expected); }