Avatar
昨日やってたのは動画のフレームをコマ送りにするときに
6:24 AM
N フレーム分戻れるように画像をキャッシュしてたんだけど
6:25 AM
var cachedFrames = ArraySlice<Image<RGBA<UInt8>>> としてキャッシュしておけば、 (edited)
6:25 AM
cachedFrames[frameIndex] で簡単にアクセスできる。
6:26 AM
if cachedFrames.count > maxNumberOfCachedFrames { cachedFrames.removeFirst() } みたいにして簡単に古いキャッシュを消せるし
6:28 AM
if cachedFrames.indices.contains(frameIndex) { ... } みたいにキャッシュが存在するときの処理も簡単に書ける。
6:29 AM
(↑が O(1) になってるか自信ないけど、 (cachedFrames.startIndex ..< cachedFrames.endIndex).contains(frameIndex) にすれば O(1) ) (edited)