/******************************************************************************* * Copyright 2011-2013 Sergey Tarasevich * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *******************************************************************************/ package com.nostra13.universalimageloader.core.assist; /** * Present width and height values * * @author Sergey Tarasevich (nostra13[at]gmail[dot]com) * @since 1.0.0 */ public class ImageSize { private static final int TO_STRING_MAX_LENGHT = 9; // "9999x9999".length() private static final String SEPARATOR = "x"; private final int width; private final int height; public ImageSize(int width, int height) { this.width = width; this.height = height; } public ImageSize(int width, int height, int rotation) { if (rotation % 180 == 0) { this.width = width; this.height = height; } else { this.width = height; this.height = width; } } public int getWidth() { return width; } public int getHeight() { return height; } /** Scales down dimensions in <b>sampleSize</b> times. Returns new object. */ public ImageSize scaleDown(int sampleSize) { return new ImageSize(width / sampleSize, height / sampleSize); } /** Scales dimensions according to incoming scale. Returns new object. */ public ImageSize scale(float scale) { return new ImageSize((int) (width * scale), (int) (height * scale)); } @Override public String toString() { return new StringBuilder(TO_STRING_MAX_LENGHT).append(width).append(SEPARATOR).append(height).toString(); } }