CoreImageで指定画像をBoxBlur v2


▲Filtered Image

AppleScript名:CoreImageで指定画像をBoxBlur v2
— Created 2017-03-21 by Takaaki Naganoya
— 2017 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
use framework "QuartzCore"

property CIFilter : a reference to current application’s CIFilter
property |NSURL| : a reference to current application’s |NSURL|
property NSUUID : a reference to current application’s NSUUID
property CIImage : a reference to current application’s CIImage
property NSString : a reference to current application’s NSString
property NSImage : a reference to current application’s NSImage
property NSProcessInfo : a reference to current application’s NSProcessInfo
property NSPNGFileType : a reference to current application’s NSPNGFileType
property NSBitmapImageRep : a reference to current application’s NSBitmapImageRep

set aPath to POSIX path of (choose file of type {"public.image"})
set aNSImage to NSImage’s alloc()’s initWithContentsOfFile:aPath

set paramRec to {inputRadius:10} –5から10
set imgRes to execCIFilterWithNSImageAndParams(aNSImage, "CIBoxBlur", paramRec) of me

set savePath to retUUIDfilePath(aPath, "png") of me
set fRes to saveNSImageAtPathAsPNG(imgRes, savePath) of me

on execCIFilterWithNSImageAndParams(aNSImage, aFilterName as string, paramRec as record)
  set aDict to current application’s NSDictionary’s dictionaryWithDictionary:paramRec
set aCIImage to convNSImageToCIimage(aNSImage) of me
set aFilter to current application’s CIFilter’s filterWithName:aFilterName
aFilter’s setDefaults()
aFilter’s setValue:aCIImage forKey:"inputImage"
set aOutImage to aFilter’s valueForKey:"outputImage"
set keyList to aDict’s allKeys() as list
repeat with i in keyList
    set aVal to (aDict’s valueForKey:i) as list of string or string –as anything
aFilter’s setValue:aVal forKey:(i as string))
  end repeat
set newNSImage to convCIimageToNSImage(aOutImage) of me
return newNSImage
end execCIFilterWithNSImageAndParams

on convCIimageToNSImage(aCIImage)
  set aRep to NSBitmapImageRep’s alloc()’s initWithCIImage:aCIImage
set tmpSize to aRep’s |size|()
set newImg to NSImage’s alloc()’s initWithSize:tmpSize
newImg’s addRepresentation:aRep
return newImg
end convCIimageToNSImage

on convNSImageToCIimage(aNSImage)
  set tiffDat to aNSImage’s TIFFRepresentation()
set aRep to NSBitmapImageRep’s imageRepWithData:tiffDat
set newImg to CIImage’s alloc()’s initWithBitmapImageRep:aRep
return newImg
end convNSImageToCIimage

on retUUIDfilePath(aPath, aEXT)
  set aUUIDstr to (NSUUID’s UUID()’s UUIDString()) as string
set aPath to ((NSString’s stringWithString:aPath)’s stringByDeletingLastPathComponent()’s stringByAppendingPathComponent:aUUIDstr)’s stringByAppendingPathExtension:aEXT
return aPath
end retUUIDfilePath

on saveNSImageAtPathAsPNG(anImage, outPath)
  set imageRep to anImage’s TIFFRepresentation()
set aRawimg to NSBitmapImageRep’s imageRepWithData:imageRep
set pathString to NSString’s stringWithString:outPath
set newPath to pathString’s stringByExpandingTildeInPath()
set myNewImageData to (aRawimg’s representationUsingType:(NSPNGFileType) |properties|:(missing value))
set aRes to (myNewImageData’s writeToFile:newPath atomically:true) as boolean
return aRes –true/false
end saveNSImageAtPathAsPNG

★Click Here to Open This Script 

Please follow and like us:


メールアドレスが公開されることはありません。 * が付いている欄は必須項目です