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

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

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

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

834閲覧

PHAssetを画像データにし、その画像からMD5ハッシュを求めたい

ryohasegawa

総合スコア437

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2021/05/30 05:07

編集2021/05/30 06:18

ライブラリから画像の一覧取得はできたものの、このデータを画像データにし、そのデータからMD5ハッシュを求めたいのですが、実現方法がわかりません。
やり方や、参考になるサイトなど教えていただけたら幸いです。

swift

1func imageSend(){ 2 3 // 取得結果を格納 4 var photoAssets = [PHAsset]() 5 6 //メディアタイプをビデオに絞って取得 7 let assets:PHFetchResult = PHAsset.fetchAssets(with: PHAssetMediaType.image, options: nil) 8 //取得したアセットを変換 9 assets.enumerateObjects({(obj, index, stop) -> Void in 10 // 配列に格納 11 photoAssets.append(obj) 12 13// print("画像:", obj.mediaSubtypes) 14 }) 15 16 17 print(photoAssets[0]) 18 print(photoAssets[1]) 19 20 }

このコードの出力結果は以下のようになってます。

<PHAsset: 0x14dd0ba90> 6C796D3D-6722-4388-B9E5-8C1AB8A3678C/L0/001 mediaType=1/0, sourceType=1, (4032x2268), creationDate=2019-08-12 20:01:30 +0000, location=1, hidden=0, favorite=0, adjusted=0 <PHAsset: 0x14dd14bb0> EFE83B7B-1BF6-47DB-93F6-C284108E8851/L0/001 mediaType=1/0, sourceType=1, (4032x2268), creationDate=2019-07-06 00:53:47 +0000, location=1, hidden=0, favorite=0, adjusted=0

追記

ハッシュ値はMD5ではないですが、photoAssets[0].hashValueでハッシュ値を取得することができたので、画像データの取得について教えていただきたいです。

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

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

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

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

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

hoshi-takanori

2021/05/30 05:59

ハッシュ値は画像の保存形式や保存するときのパラメータによって変わると思いますけど、何に使うのでしょうか?
ryohasegawa

2021/05/30 06:02

サーバーに画像とハッシュ値を送信して、既に送信されているかどうがを検知するために使います
ryohasegawa

2021/05/30 06:16

ハッシュ値はMD5ではないですが、photoAssets[0].hashValueで取得できたので、これを使おうかと思います。
guest

回答1

0

自己解決

swift

1let pngImageData = image!.pngData() 2let documentsURL = FileManager.default.urls(for: .libraryDirectory, in: .userDomainMask)[0] 3let fileURL = documentsURL.appendingPathComponent("testimage.png") 4do { 5 try pngImageData!.write(to: fileURL) 6} catch { 7 //エラー処理 8 print("エラー") 9}

とすることで、画像(png)として保存することができました。

投稿2021/05/31 02:40

ryohasegawa

総合スコア437

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問