【问题标题】:Need help converting a process from Java(android) to IOS Swift需要帮助将进程从 Java(android) 转换为 IOS Swift
【发布时间】:2015-02-28 17:39:09
【问题描述】:

背景:我在一个 android 应用程序中有一个进程,它调整图像大小,使用位图 30% 的 JPEG 压缩,并返回一个 byteArray,我在其中转换为 base64Encoded 字符串。如果可能的话,我需要将这种类型的功能移植到 IOS Swift。我正在经历网络上用于图像处理的大量方法的信息过载,我需要更多的指导。 这是我的安卓代码:

Bitmap bmp = null;
        Bitmap scaledBitmap = null;
        ByteArrayOutputStream baos = null;

        try
        {
            bmp = BitmapFactory.decodeByteArray(data, 0, data.length);

            //if the bitmap is smaller than 1600 wide, scale it up while preserving aspect ratio
            if(bmp.getWidth() < 1600) {
                int originalHeight = bmp.getHeight();
                int originalWidth = bmp.getWidth();

                scaledBitmap = Bitmap.createScaledBitmap(bmp, 1600,
                        originalHeight*1600/originalWidth, true);

                bmp = scaledBitmap;
                scaledBitmap = null;
            }

            baos = new ByteArrayOutputStream();
            bmp.compress(Bitmap.CompressFormat.JPEG, 30, baos); // 30% compression
            image = baos.toByteArray();
        }
        //catch stuff after this

到目前为止,这是我的 IOS Swift 代码:

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) {
    picker.dismissViewControllerAnimated(true, completion: nil)

    let image = info[UIImagePickerControllerOriginalImage] as? UIImage

    self.imgCheckFront.image = info[UIImagePickerControllerOriginalImage] as? UIImage

    let imageData = UIImageJPEGRepresentation(info[UIImagePickerControllerOriginalImage] as? UIImage, 30.0)

    let base64String = imageData.base64EncodedStringWithOptions(.allZeros)

    }

}

我认为这与我的 Android 进程完全不同。我在 IOS 代码中创建的结果 base64String 的大小太大了。

【问题讨论】:

    标签: android ios swift uiimage


    【解决方案1】:

    对不起,这是一个愚蠢的错误。 这个:

    let imageData = UIImageJPEGRepresentation(info[UIImagePickerControllerOriginalImage] as? UIImage, 30.0)
    

    需要这样:

    let imageData = UIImageJPEGRepresentation(info[UIImagePickerControllerOriginalImage] as? UIImage, 0.3)
    

    【讨论】:

      猜你喜欢
      • 2014-10-26
      • 2019-12-23
      • 1970-01-01
      • 1970-01-01
      • 2022-01-05
      • 1970-01-01
      • 2021-05-08
      • 2015-11-11
      • 2018-11-24
      相关资源
      最近更新 更多