feat: event增加压缩图片字段
This commit is contained in:
parent
39a3001211
commit
563893efac
|
@ -193,6 +193,20 @@ class CorrectViewSet(CustomGenericViewSet):
|
|||
item.shift = item.sflog.shift
|
||||
item.save()
|
||||
return Response()
|
||||
|
||||
# @action(methods=['post'], detail=False, serializer_class=Serializer)
|
||||
# def global_img_compressed(self, request, pk=None):
|
||||
# """矫正全景压缩照片
|
||||
|
||||
# 矫正全景压缩照片
|
||||
# """
|
||||
# from apps.ecm.models import Event
|
||||
# events = Event.object.filter(global_img_compressed=None).exclude(glboal_img=None)
|
||||
# for event in events:
|
||||
# path, end= event.global_img.split('.')
|
||||
# event.global_img_compressed = path + '_compressed.' + end
|
||||
# event.save()
|
||||
# return Response()
|
||||
|
||||
class TestViewSet(CustomGenericViewSet):
|
||||
authentication_classes = ()
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
# Generated by Django 3.2.12 on 2023-08-22 02:55
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('ecm', '0010_alter_eventcate_code'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='event',
|
||||
name='global_img_compressed',
|
||||
field=models.CharField(blank=True, max_length=1000, null=True, verbose_name='全景照压缩'),
|
||||
),
|
||||
]
|
|
@ -83,6 +83,7 @@ class Event(CommonBDModel):
|
|||
cates = models.ManyToManyField(EventCate, verbose_name='关联事件种类', through='ecm.eventdo', related_name='event_cates')
|
||||
face_img = models.CharField('人脸照', max_length=1000, null=True, blank=True)
|
||||
global_img = models.CharField('全景照', max_length=1000, null=True, blank=True)
|
||||
global_img_compressed = models.CharField('全景照压缩', max_length=1000, null=True, blank=True)
|
||||
area = models.ForeignKey(Area, verbose_name='发生区域', on_delete=models.SET_NULL, null=True, blank=True)
|
||||
vchannel = models.ForeignKey(TDevice, verbose_name='抓拍设备', on_delete=models.SET_NULL, null=True, blank=True)
|
||||
location = models.JSONField('事件点位坐标', default=dict, null=False, blank=True)
|
||||
|
|
|
@ -59,10 +59,16 @@ def save_dahua_pic(pic_url: str, save_path: str = '/media/'):
|
|||
os.makedirs(full_path)
|
||||
with open(full_path + file_name, 'wb') as f:
|
||||
f.write(res.content)
|
||||
full_path_file = full_path + file_name
|
||||
compress_image(full_path_file)
|
||||
return path + file_name
|
||||
|
||||
def compress_global_img(path_file):
|
||||
full_path_file = settings.BASE_DIR + path_file
|
||||
try:
|
||||
out_file, _ = compress_image(full_path_file)
|
||||
return out_file.replace(settings.BASE_DIR, '')
|
||||
except:
|
||||
myLogger.error(f'图片压缩失败-{full_path_file}', exc_info=True)
|
||||
return None
|
||||
|
||||
def get_ep_default():
|
||||
"""返回人员默认位置信息
|
||||
|
@ -345,6 +351,7 @@ def dispatch_dahua_event(data: dict):
|
|||
if cates:
|
||||
event = Event()
|
||||
event.global_img = ec_codes['global_img'] if ec_codes.get('global_img', None) else save_dahua_pic(global_img_o)
|
||||
event.global_img_compressed = compress_global_img(event.global_img)
|
||||
if face_img_o:
|
||||
event.face_img = save_dahua_pic(face_img_o)
|
||||
event.area = area
|
||||
|
@ -657,6 +664,7 @@ def snap_and_analyse(vchannel: TDevice, algo_codes: list, opl: Opl = None):
|
|||
|
||||
event = Event()
|
||||
event.global_img = ec_codes['global_img'] if ec_codes.get('global_img', None) else save_dahua_pic(global_img_o)
|
||||
event.global_img_compressed = compress_global_img(event.global_img)
|
||||
event.vchannel = vchannel
|
||||
event.area = vchannel.area
|
||||
event.obj_cate = obj_cate
|
||||
|
|
|
@ -197,7 +197,9 @@ def monitor_and_analyse(vchannel_code: str, algo_codes: list):
|
|||
|
||||
@shared_task(base=CustomTask)
|
||||
def compressed_all_ecm_image():
|
||||
from apps.ecm.service import compress_global_img
|
||||
events = Event.objects.exclude(global_img=None)
|
||||
for event in events:
|
||||
if event.global_img:
|
||||
compress_image(settings.BASE_DIR + event.global_img)
|
||||
if event.global_img and event.global_img_compressed is None:
|
||||
event.global_img_compressed = compress_global_img(event.global_img)
|
||||
event.save()
|
|
@ -185,9 +185,6 @@ class EventViewSet(ListModelMixin, RetrieveModelMixin, DestroyModelMixin, Custom
|
|||
cates_str = ''
|
||||
for m in i['cates_']:
|
||||
cates_str = cates_str + m['name'] + '/'
|
||||
if i['global_img']:
|
||||
path, end = i['global_img'].split('.')
|
||||
i['global_img_compressed'] = path + '_compressed.' + end
|
||||
data.append(
|
||||
[
|
||||
cates_str,
|
||||
|
|
Loading…
Reference in New Issue