Skip to content

Commit 7c97beb

Browse files
Chris Ellsworthfacebook-github-bot
Chris Ellsworth
authored andcommitted
Add CVPixelBuffer support to visualize command
Summary: I often run this three-liner to `visualize` a `CVPixelBuffer` so figured we could save some time by building it into the `visualize` command. Differential Revision: D22653607 fbshipit-source-id: bf03acb4e091b8c93b7e1c73ea8b065755c706ad
1 parent 5e64f4e commit 7c97beb

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

commands/FBVisualizationCommands.py

+15-1
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,14 @@ def _showLayer(layer):
146146
fb.evaluateEffect("UIGraphicsEndImageContext()")
147147

148148

149+
def _showPixelBuffer(target):
150+
fb.evaluateExpression("CGImageRef $imageOut = NULL")
151+
fb.evaluateExpression("(OSStatus)VTCreateCGImageFromCVPixelBuffer(" + target + ", NULL, &$imageOut)")
152+
image = fb.evaluateExpression("[UIImage imageWithCGImage:$imageOut]")
153+
_showImage(image)
154+
fb.evaluateExpression("CGImageRelease($imageOut)")
155+
156+
149157
def _dataIsImage(data):
150158
data = "(" + data + ")"
151159

@@ -181,6 +189,12 @@ def _visualize(target):
181189
+ ") == (unsigned long)CGImageGetTypeID()"
182190
):
183191
_showImage("(id)[UIImage imageWithCGImage:" + target + "]")
192+
elif fb.evaluateBooleanExpression(
193+
"(unsigned long)CFGetTypeID((CFTypeRef)"
194+
+ target
195+
+ ") == (unsigned long)CVPixelBufferGetTypeID()"
196+
):
197+
_showPixelBuffer(target)
184198
else:
185199
if objectHelpers.isKindOfClass(target, "UIImage"):
186200
_showImage(target)
@@ -219,7 +233,7 @@ def name(self):
219233

220234
def description(self):
221235
return (
222-
"Open a UIImage, CGImageRef, UIView, or CALayer in Preview.app on your Mac."
236+
"Open a UIImage, CGImageRef, UIView, CALayer, or CVPixelBuffer in Preview.app on your Mac."
223237
)
224238

225239
def args(self):

0 commit comments

Comments
 (0)