- 2008-05-30 (金)
- memo
ImageUnitだったら何でも使えるのかと思って、モナリザで変換したのとか試しても使えない。
それどころか、Leopardで追加されたDiscBlurとかも使えない。
で、Pythonも分からんくせにcoreimageの__init__.pyを覗いてみると、
self.FILTER_COLORMATRIX = "CIColorMatrix"
self.FILTER_EDGES = "CIEdges"
self.FILTER_MOTIONBLUR = "CIMotionBlur"
self.FILTER_DISCBLUR = "CIDiscBlur"
self.FILTER_ZOOMBLUR = "CIZoomBlur"
self.FILTER_BUMPDISTORTION = "CIBumpDistortion"
self.FILTER_HOLEDISTORTION = "CIHoleDistortion"
self.FILTER_CIRCLESPLASHDISTORTION = "CICircleSplashDistortion"
self.FILTER_TWIRLDISTORTION = "CITwirlDistortion"
self.FILTER_CIRCULARWRAP = "CICircularWrap"
self.FILTER_KALEIDOSCOPE = "CIKaleidoscope"
self.FILTER_TRIANGLETILE = "CITriangleTile"
self.FILTER_PERSPECTIVETILE = "CIPerspectiveTile"
self.FILTER_STARSHINEGENERATOR = "CIStarShineGenerator"
self.FILTER_CHECKERBOARDGENERATOR = "CICheckerboardGenerator"
self.FILTER_BLOOM = "CIBloom"
self.FILTER_PIXELATE = "CIPixellate"
self.FILTER_CRYSTALLIZE = "CICrystallize"
self.FILTER_SPOTLIGHT = "CISpotLight"
self.FILTER_SHADEDMATERIAL = "CIShadedMaterial"
self.FILTER_PAGECURLTRANSITION = "CIPageCurlTransition"
とか一々やってるので、どうやら個別にひとつずつ読み込む為の処理を書いておかなければならないようです。
で、Discblurを増やしたい。
同じブラー系のmotionblurとかzoomblurの処理をコピペしていけばいいだろう。たぶん。
で、motionblurで検索して、みつかった行ごとコピペして、DiscblurとかDISCBLURとかに変える作業をして、 初期値はradius:8.0にしたりなんかして、
def render_filter_discblur(self, layer, img, options):
# Apply the Core Image Disc Blur filter effect,
r = options["radius"]
r = max(0.0, min(r, 100.0))
p = {"inputRadius": r}
img = self.filter(self.FILTER_DISCBLUR, img, p)
return img
こんな感じにしたところ無事に
canvas.append(img).filter("discblur")
とかするとDiscblur使えました。
- Newer: time()を使う ≫
- Older: ≪ coreimageをちょっと使ってみる。