質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Q&A

0回答

982閲覧

django内でカメラから撮影(取得)した画像を、一度PCに保存せずにアップロードしたいです。

alizona

総合スコア126

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

0グッド

1クリップ

投稿2023/01/29 17:25

編集2023/01/30 06:53

タスク管理アプリを djangoで作ってます。

django内で起動したカメラから取得した画像、動画を ファイル選択の過程を通さず、直接アップロードしたいです。

*取得する画像について。
現時点では画像は、ret, jpeg = cv2.imencode('.jpg', frame) で jpgを取得しています。

下記のような ファイルを選択する工程を省いて、django内で取得したjpgをボタンが押されたらformでpost するようにしたいです。
イメージ説明

python

1def post_detail(request, pk): 2 post = Post.objects.get(pk=pk) 3 if request.method == 'POST': 4 form = CommentForm(request.POST, request.FILES) 5 6 if form.is_valid(): 7 comment=form.save(commit=False) 8 comment.post=post 9 comment.name=request.user 10 11 12 if 'video' in request.FILES: 13 video = request.FILES['video'] 14 result = cloudinary.uploader.upload_large(video) 15 video_url = result['url'] 16 format=os.path.splitext(video_url) 17 18 form.cleaned_data['video'] = video_url 19 comment.video=form.cleaned_data['video']+'????'+str(format)+'????' 20 21 if 'image' in request.FILES: 22 image=request.FILES['image'] 23 result = cloudinary.uploader.upload(image) 24 image_url = result['url'] 25 form.cleaned_data['image'] = image_url 26 comment.image=form.cleaned_data['image'] 27 28 jpg=generate_frame() 29 if jpg: 30 result = cloudinary.uploader.upload(jpg) 31 image_url = result['url'] 32 form.cleaned_data['image'] = image_url 33 comment.verified_image=form.cleaned_data['image'] 34 35 36 comment.save() 37 return redirect("post_detail",pk=post.pk) 38 else: 39 form = CommentForm() 40 41 return render(request, "registration/post_detail.html",{"post":post, "form":form}) 42 43 44#画像を取得(動画) 45def generate_frame(): 46 capture = cv2.VideoCapture(0) # USBカメラから 47 48 did_not_get_image=True 49 while did_not_get_image: 50 if not capture.isOpened(): 51 print("Capture is not opened.") 52 break 53 # カメラからフレーム画像を取得 54 ret, frame = capture.read() 55 if not ret: 56 print("Failed to read frame.") 57 break 58 # フレーム画像バイナリに変換 59 ret, jpg = cv2.imencode('.jpg', frame) 60 did_not_get_image=False 61 capture.release() 62 return jpg

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問