更新后的问题:
我正在使用Django并且已经实现了其他API图像文件。
我会得到像这样的图像对象:
image_obj = request.data['image']
如何获取扩展名?例如,如果文件是image.jpg,我想得到" jpg"扩展名。
以下是我原来的问题(你可以忽略,因为目标在上面):
有没有办法确定图像的类型,如jpg,jpeg,png等,以便我可以将其解码回相同的格式?
例如,我在图像文件上有一个http帖子,它使用imdecode创建opencv对象,并使用imencode重新创建对象(我不确定这是否正确)。
image_obj = request.data['image']
im_cv = cv2.imdecode(np.fromstring(image_obj.read(), np.uint8), cv2.IMREAD_UNCHANGED)
... do something like crop, detection, etc
ret, buf_im_cv = cv2.imencode( '.png', im_cv ) <-- in this case I have to specify png, what if its jpg, etc
答案 0 :(得分:1)
这种字符串对象方法- 分割 -将帮助您:
ext = image_obj.name.split('.')[-1]
答案 1 :(得分:0)
将图片名称作为表单中的隐藏字段传递,并使用它来解析文件扩展名。
@api_view(['POST'])
def employee_test(request):
"""
description: employee_management_test
parameters:
- name: image
type: file
required: true
location: form
"""
image_obj = request.data['image']
imagename = request.data['imagename']
# Also handle the case of file not having extension
extension = imagename[imagename.rfind("."):]
...
# Do you stuff here
ret, buf_im_cv = cv2.imencode(extension, im_cv)
答案 2 :(得分:0)