如何将magick对象转换为可用于API上传的原始向量?
从magick对象直接提取有效图片原始向量的方法
你直接提取的raw数组是图片的未压缩像素原始数据(RGB/A通道的数值集合),并非编码后的JPEG字节流——这就是为什么体积是正常JPEG的8倍,且无法被API识别的核心原因。
不用存盘再读取的正确实现方式如下:
library(magick) # 读取目标图片 img <- image_read("test.jpg") # 获取图片对应的MIME类型 mime_type <- image_mimetype(img) # 直接将magick对象转为JPEG编码的原始字节向量 raw_vec <- image_write(img, format = "jpg", raw = TRUE)
image_write()的raw = TRUE参数会直接返回编码后的字节流,和你存盘再读取的内容完全一致,无需写入磁盘image_mimetype()可直接获取对应格式的标准MIME类型,无需手动判断
通过这种方式得到的raw_vec就是API可识别的有效JPEG原始向量,体积与正常JPEG文件一致,完全替代存盘再读取的临时方案。
内容的提问来源于stack exchange,提问作者JBGruber
相关产品推荐
相关产品推荐

