def scale(self, scaled_cx, scaled_cy):
        """
        Return scaled image dimensions in EMU based on the combination of
        parameters supplied. If *scaled_cx* and *scaled_cy* are both |None|,
        the native image size is returned. If neither *scaled_cx* nor
        *scaled_cy* is |None|, their values are returned unchanged. If
        a value is provided for either *scaled_cx* or *scaled_cy* and the
        other is |None|, the missing value is calculated such that the
        image's aspect ratio is preserved.
        """
        image_cx, image_cy = self._native_size

        if scaled_cx is None and scaled_cy is None:
            scaled_cx = image_cx
            scaled_cy = image_cy
        elif scaled_cx is None:
            scaling_factor = float(scaled_cy) / float(image_cy)
            scaled_cx = int(round(image_cx * scaling_factor))
        elif scaled_cy is None:
            scaling_factor = float(scaled_cx) / float(image_cx)
            scaled_cy = int(round(image_cy * scaling_factor))

        return scaled_cx, scaled_cy
Return scaled image dimensions in EMU based on the combination of
        parameters supplied. If *scaled_cx* and *scaled_cy* are both |None|,
        the native image size is returned. If neither *scaled_cx* nor
        *scaled_cy* is |None|, their values are returned unchanged. If
        a value is provided for either *scaled_cx* or *scaled_cy* and the
        other is |None|, the missing value is calculated such that the
        image's aspect ratio is preserved.