8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

カメラで撮影した写真をリサイズしてOneDriveに保存する&Teamsに投稿

Last updated at Posted at 2020-03-05

何がしたかったか

スマホのカメラで撮影した写真を、会社で使っているOneDrive for Businessにアップロードしてメール/Teamsで通知というようなことをやりたいとき、スマホのカメラの画像だとどうしても大きくてメールや投稿につけたときに読み込みが遅くなる/ダウンロードに時間がかかってしまう。
というようなことがあるかなと思います。(と、Twitterの友人が言っていました)

そのような場合に、写真をリサイズ/軽量化したくなるんだけど、Office 365の枠内だとそういうコネクタやアクションがないんですよね。。
Encodian (3rd party) 使えばいいのですが、純正以外禁止されているパターンもあり。

今回はリサイズや軽量化とはちょっと違うけど、目的を達成できるFlowをご紹介です。

Power Automateをつかって、ファイルのサムネイルを保存しなおします。

Flow

超簡単です。
image.png

これだけ。最初にアップロードした写真のサムネイルを取得して、それを保存しなおすことで、サイズを小さくしたファイルをOneDriveに残せます。
[2020/3/5:修正]
Teamsに通知したい場合、HTMLのメッセージでは画像のリンクしか載せられないので、Adaptive Cardを使います

ちょっとだけ、数式を使わないと取れない部分があるので記載します。

- 添付したファイル名

triggerBody()?['file']?['name']

取れそうな気もするのですが、私の環境だと表示されなかったので念のため。

- 保存先のパス+ファイル名
ここは用途に応じてですが、私はOneDriveのルート(直下)に、幅(px)-高さ(px)ファイル名.拡張子 の形式で保存しました。
その際の数式は、以下のようになります。

concat('/',body('Get_file_thumbnail')?['Width'],'-',body('Get_file_thumbnail')?['Height'],triggerBody()?['file']?['name'])

- Adaptive Card用のJSONとdatauri
ここでは単純にカードの中にImageだけが入ったものを送ります。
その場合

message.json
{
    "type": "AdaptiveCard",
    "version": "1.0",
    "body": [
        {
            "type": "Image",
            "altText": "",
            "url": "@{datauri(body('Get_file_content_using_path'))}"
        }
    ],
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json"
}

この短いAdaptive CardをComposeしておいて、あとはTeamsのメッセージ部分に挿入します。

通知部分

[2020/3/5:大幅修正]
Teamsへの投稿で写真を載せたい場合、サムネイルのUrlだとあとから表示されなくなる、そもそもSharePoint/OneDriveの画像は表示されない などの制限があります。
そこで、Adaptive Cardを利用します。(ここポイント!!)
Adaptive Cardにすると、画像のコンテンツのdataUriをCardのImageブロックに表示させることができます!
image.png

実行すると・・・
out1.gif

やったぜ!!

補足

作成したファイル (もともとサムネイル)は、ダウンロードしたらJPEGに拡張子を変更すれば写真ビューワーなどで表示できるようになります。
(900KBくらいの写真から、生成されたサムネイルは60KBほどでした)

8
7
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
8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?