1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Power Appsでの罠が多いカメラコントロールを使ってGPT-4.1の画像認識を試す

Last updated at Posted at 2025-04-29

罠が多いカメラです。

カメラ関連ややり方何個かあります

その中でカメラを使います。

最終的にこれでいけた

ボタンのonSelectではなくCameraのonSelectなのが超重要。

Set(varPhoto, Camera1.Photo);
Set(varDataUri, JSON(varPhoto, JSONFormat.IncludeBinaryData));
Set(varPureBase64, Substitute(varDataUri, """", ""));
UpdateContext({ newLabelText: 'のびすけ検証3-GPT画像読み取り'.Run(varPureBase64).response });

CleanShot 2025-04-29 at 11.36.36.png
まさかすぎる

画像上に"カメラ撮影"ってボタンを作ってそっちで試してましたが、これだとうまくいきません。

ボタンのonSelectが使えない罠

この記事が神だったのですが、まずボタンを押してカメラの制御ができず、カメラのプレビュー画面を押してコントロールする感じみたいです。普通に考えるとそんな使い方しないのにな... そっちのほうが直感的なのか...?

Base64文字列にする処理

Set(varPhoto, Camera1.Photo);
Set(varDataUri, JSON(varPhoto, JSONFormat.IncludeBinaryData));
Set(varPureBase64, Substitute(varDataUri, """", ""));
UpdateContext({ newLabelText: 'のびすけ検証3-GPT画像読み取り'.Run(varPureBase64).response });

これを解説すると

Set(varPhoto, Camera1.Photo);
Set(varDataUri, JSON(varPhoto, JSONFormat.IncludeBinaryData));

ここでvarDataUriにBase64変換したdata:image/png;base64,iVBORw0KGgoAAAANS…==といった文字列に。ただダブルクォート("")で囲まれた状態になってるので、次のSubstitureで""を消しています。

Set(varPureBase64, Substitute(varDataUri, """", ""));```

関係ないけど

Power Appsの式って言語なんなんだろう。JS指定にしたらQiita上だとアラートでなかったのでとりあえずJS指定にしています。

CleanShot 2025-04-29 at 11.31.22.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?