private BufferedImage doManipulation(BufferedImage input)
	{
		recalculateDimensions();
				
		double radianAngle		=	Math.toRadians(rotation);
				
		BufferedImage newImage;
		
		if(Game.TEST_ACCELERATION) 	newImage = SimpleImage.createQuickImage(rotatedSize.x, rotatedSize.y);
		else						newImage = new BufferedImage(rotatedSize.x, rotatedSize.y, BufferedImage.TYPE_INT_ARGB);

		Graphics2D g 			=	newImage.createGraphics();        
		if(!Game.TEST_ACCELERATION) 	g.setBackground(new Color(255, 255, 255, 0));
        
        if(isRotated())
        	g.rotate(radianAngle, rotatedSize.x/2, rotatedSize.y/2);
        
        g.drawImage(input, (rotatedSize.x - scaledSize.x) /2, (rotatedSize.y - scaledSize.y) /2, scaledSize.x, scaledSize.y,	null);

        if(isTransparencyChanged())
        	newImage = applyTransparency(newImage, transparency);
        
        return newImage;
	}