0
1

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 1 year has passed since last update.

JPEG2000 でエンコードされたByteArray の扱いに気をつけろ (Swift, Kotlin)

0
Last updated at Posted at 2023-10-31

概要

ここに質問して、結局2時間後くらいに何が悪かったかに気づき修正することができました。

どこでハマったか

JPEG2000でエンコードされたbyteArray を扱う際に、
Swiftを使っていれば

let uiImage = UIImage(data: data)

としてByteArray ([UInt8]) をそのままぶちこむだけでなんかImageとして出力してくれていたのですが、
Kotlinでは同様にBitmapにすれば描画できるやろと思って

var bitmap = BitmapFactory.decodeByteArray(data, 0, data.size, BitmapFactory.Options())

とやっても、bitmap はnullになっていたので何が問題なのか分かりませんでした。

解決策

あとで、このバイト配列がJPEG2000でエンコードされたものであることがわかり、
Kotlinでは例えば

このライブラリを使ってデコードする必要があることがわかりました。

ライブラリのインポートさえしてしまえば、

import com.gemalto.jp2.JP2Decoder
val bitmap = JP2Decoder(it).decode();

で簡単にデコードできます。

以上!

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?