Извлечь изображение из медиафайла Django - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь сохранить изображение из видеофайла в django в методе сохранения модели. Я основывался на этой теме

Это мой метод сохранения для модели

def save(self, *args, **kwargs):

    if not self.slug: 
        orig = self.slug = slugify(unidecode(self.name))
        for x in itertools.count(1):
            if not Project.objects.filter(slug=self.slug).exists() or (Project.objects.filter(slug=self.slug).exists() and self == Project.objects.get(slug=self.slug)):
                break
            self.slug = '%s-%d' % (orig, x)

    super(Project, self).save(*args, **kwargs)

    if not self.image and self.project_type=='video':
        vidcap = cv2.VideoCapture(settings.MEDIA_ROOT + self.video.url)
        success,image = vidcap.read()
        self.image = image
        self.image.name = 'video_images/' + self.slug + '.jpg'
        new_path = settings.MEDIA_ROOT + self.image.name
        cv2.imwrite(new_path, image)
        super(Project, self).save(*args, **kwargs)

Я посмотрел на success, и он всегда выходит False (я пытался зациклить while not success, и это в конечном итоге истекло)

1 Ответ

0 голосов
/ 10 мая 2019

Я изменил сохранение на это.Это работает, когда название видео латинские символы, но не для греческого

    if not self.image and self.project_type=='video':
        vidcap = cv2.VideoCapture(settings.BASE_DIR + self.video.url)
        success,image = vidcap.read()
        new_path = settings.MEDIA_ROOT + '/video_images/' + self.slug + '.jpg'
        cv2.imwrite(new_path, image)
        self.image = new_path
        self.image.name = 'video_images/' + self.slug + '.jpg'

Просто понял, что это не работает, когда видео имеет греческий набор символов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...