Tuesday, 31 January 2012
Angry Birds Chrome now uses the Web Audio API
By Fred Sauer, Developer Advocate
Cross-posted with the Google Web Toolkit Blog
Last week Angry Birds for Chrome was updated to use the Web Audio API for all its in-game audio for Chrome users, which means Chrome users get the full Angry Birds experience, without any plugins. The Web Audio API supports a wide variety of use cases, including the high fidelity and low latency requirements of games. Users of other supported browsers will still get sound via Flash or HTML5 audio.
How does this cross-browser audio magic work? As you may have seen or heard, Angry Birds was in no small part made possible by the cross-platform open source PlayN library. When building for the HTML platform, PlayN in turn relies heavily on Google Web Toolkit (GWT) to delivery a highly optimized web experience for users, and on gwt-voices to easily deliver a cross-browser audio experience.
The responsibility of choosing the appropriate audio API for the game's sound is (mostly) left up to gwt-voices, which chooses the audio API that will give the best experience. If you'd like to hear how other audio APIs perform, you can ask gwt-voices to try to use the Web Audio API, Flash, HTML5 Audio, or even native audio. Your mileage will vary by browser and platform and which plugins you have installed. Also, gwt-voices will select the best available fallback, if the desired audio API is not going to work at all in your environment.
Want to learn more? Check out the Web Audio API tutorial and don't let those pigs grunt too much.
Fred Sauer is a Developer Advocate at Google where most of his time is devoted to Google App Engine and Google Web Toolkit. He is the author of various GWT related open source projects including gwt-dnd (providing in browser Drag and Drop capabilities), gwt-log (an advanced logging framework) and gwt-voices (for cross browser sound support). Fred has dedicated much of his career to Java related development, with an increasing focus on HTML5.
Posted by Scott Knaster, Editor
Location:
Mountain View, CA, USA
Monday, 30 January 2012
Translating JavaScript to Dart
Marcin |
Aaron |
By Aaron Wheeler, Senior User Experience Prototyper, and Marcin Wichary, Senior User Experience Designer
Cross-posted with the Chromium Blog
It took approximately 2000 years for the original Rosetta Stone to be discovered, which helped translate the Egyptian Hieroglyphs. We couldn’t wait that long to bridge the Dart and JavaScript worlds, so today we are releasing the JavaScript to Dart Synonym app.
Like most web developers, we are familiar, comfortable, and productive with JavaScript. We were curious about Dart, and thanks to a recent Dart hackathon, we had the chance to play with the language and libraries. The problem was, as JavaScript developers, we didn’t know how to map common JavaScript idioms to Dart. Hence the idea for this synonym app was born.
We started with the basics that every JavaScript and jQuery developer knows: variables, arrays, functions, classes, DOM manipulation, and many more. Then, with the help of the Dart team, we recorded the corresponding Dart versions of each idiom. To practice what we learned, we wrote this app with Dart.
We hope our app that maps between JavaScript and Dart eases your introduction to Dart and gives you a sense of where the project is going. We know the team is eager to hear your feedback. Don’t hesitate to join the conversation or file a new issue for either Dart or the Synonym app. And remember, Dart isn’t set in stone, so your feedback counts.
Aaron Wheeler is a user experience prototyper working on special projects that go beyond the Web. He balances design and engineering outside of work as well, splitting time between artistic pursuits and bicycle maintenance.
Marcin Wichary is a user experience designer, currently working on the Chrome browser and thinking of the future of the Web platform. He also occasionally codes interactive homepage doodles, such as Pac-Man and Stanislaw Lem.
Posted by Scott Knaster, Editor
Labels:
dart,
javascript
Location:
Mountain View, CA, USA
Sunday, 29 January 2012
g|saudi arabia 2.0 is back
By Rania Hadi, MENA Outreach Manager
View this post in Arabic
Building on a year packed with g|days throughout the Middle East and North Africa, today we are announcing Google MENA’s first 2012 event to kick off the new year. On March 24-25, Google, in collaboration with Badir Technology Incubator, will be hosting our second event in the Kingdom: g|saudi arabia 2.0.
We’re coming to Jeddah with a host of fresh sessions on all things technology and business. Google engineers, product managers, and business leaders will be there to not only deliver trainings but will be available for any questions, ideas, or discussions you may want to have. We’re also planning some new formats: hands-on workshops, dedicated sessions for women in technology, and chances to showcase Saudi’s finest developer talent.
So if you are a developer, programmer, IT professional, entrepreneur, or small business/start-up, you won’t want to miss this event! If you need more convincing, have a look at the fun, enthusiasm and energy from last year.
Rania Hadi has been with Google since 2004 and now works on Outreach in MENA. She focuses on building relationships and promoting Google technologies with the developer and tech communities.
Posted by Scott Knaster, Editor
Labels:
events,
google developer days
Location:
Mountain View, CA, USA
Friday, 27 January 2012
Fridaygram: faster web, stronger machines, prettier planet
By Scott Knaster, Google Code Blog Editor
Everybody likes a faster web, and that theme has been evident this week here on Google Code Blog. On Monday, Yuchung Cheng wrote about Google’s research into making TCP faster through various proposals and experiments. Yesterday, Roberto Peon and Will Chan blogged about SPDY (pronounced speedy), Google’s protocol for speeding up the web’s application layer historically handled by HTTP. In related news this week, the chairman of the HTTPbis Working Group announced support for SPDY in a public post.
At Google, these projects are part of our Make the Web Faster initiative, although TCP improvements and SPDY are efforts of the whole community. Even if you’re not working on TCP or SPDY, you can find lots of useful resources at our Make the Web Faster site. For example, there are articles on compression, caching, metrics, and more, a set of tools for measuring and optimizing pages, and several discussion forums for communicating with other interested folks.
Sometimes stronger is more important than faster. Scientists looking to improve the durability of machinery have been studying the yellow fattail scorpion, which uses bumps on its back to resist damage from sandstorms. Researchers hope to use the scorpion’s design to create erosion-resistant surfaces for blades, pipes, and similar parts. Or maybe they’ll make machines that look like giant yellow scorpions.
Finally, take a step back from everything on Earth and have a look at NASA’s latest "Blue Marble" images of our planet. We have a beautiful home.
Let’s say this fast: Fridaygram posts are just for fun. Fridaygrams are designed for your Friday afternoon and weekend enjoyment. Each Fridaygram item must pass only one test: it has to be interesting to us nerds. That definitely includes speed, space, and scorpions.
Labels:
faster web,
Fridaygram
Location:
Mountain View, CA, USA
Thursday, 26 January 2012
Making the web speedier and safer with SPDY
Will |
Roberto |
By Roberto Peon and Will Chan, Software Engineers
Cross-posted with the Chromium Blog
In the two years since we announced SPDY, we’ve been working with the web community on evolving the spec and getting SPDY deployed on the Web.
Chrome, Android Honeycomb devices, and Google's servers have been speaking SPDY for some time, bringing important benefits to users. For example, thanks to SPDY, a significant percentage of Chrome users saw a decrease in search latency when we launched SSL-search. Given that Google search results are some of the most highly optimized pages on the internet, this was a surprising and welcome result.
We’ve also seen widespread community uptake and participation. Recently, Firefox has added SPDY support, which means that soon half of the browsers in use will support SPDY. On the server front, nginx has announced plans to implement SPDY, and we're actively working on a full featured mod-spdy for Apache. In addition, Strangeloop, Amazon, and Cotendo have all announced that they’ve been using SPDY.
Given SPDY's rapid adoption rate, we’re working hard on acceptance tests to help validate new implementations. Our best practices document can also help website operators make their sites as speedy as possible.
With the help of Mozilla and other contributors, we’re pushing hard to finalize and implement SPDY draft-3 in early 2012, as standardization discussions for SPDY will start at the next meeting of the IETF.
We look forward to working even more closely with the community to improve SPDY and make the Web faster!
To learn more about SPDY, see the link to a Tech Talk here, with slides here.
Roberto Peon and Will Chan co-lead the SPDY effort at Google. Roberto leads SPDY server efforts and continues to tell people to be unafraid of trying to change the world for the better. Will works on the Chrome network stack and leads the Chrome SPDY efforts. Outside of work, Will enjoys traveling the world in search of cheap beer and absurd situations.
Posted by Scott Knaster, Editor
Labels:
chrome,
faster web
Location:
Mountain View, CA, USA
Monday, 23 January 2012
Let's make TCP faster
By Yuchung Cheng, Make The Web Faster Team
Transmission Control Protocol (TCP), the workhorse of the Internet, is designed to deliver all the Web’s content and operate over a huge range of network types. To deliver content effectively, Web browsers typically open several dozen parallel TCP connections ahead of making actual requests. This strategy overcomes inherent TCP limitations but results in high latency in many situations and is not scalable.
Our research shows that the key to reducing latency is saving round trips. We’re experimenting with several improvements to TCP. Here’s a summary of some of our recommendations to make TCP faster:
1. Increase TCP initial congestion window to 10 (IW10). The amount of data sent at the beginning of a TCP connection is currently 3 packets, implying 3 round trips (RTT) to deliver a tiny 15KB-sized content. Our experiments indicate that IW10 reduces the network latency of Web transfers by over 10%.
2. Reduce the initial timeout from 3 seconds to 1 second. An RTT of 3 seconds was appropriate a couple of decades ago, but today’s Internet requires a much smaller timeout. Our rationale for this change is well documented here.
3. Use TCP Fast Open (TFO). For 33% of all HTTP requests, the browser needs to first spend one RTT to establish a TCP connection with the remote peer. Most HTTP responses fit in the initial TCP congestion window of 10 packets, doubling response time. TFO removes this overhead by including the HTTP request in the initial TCP SYN packet. We’ve demonstrated TFO reducing Page Load time by 10% on average, and over 40% in many situations. Our research paper and internet-draft address concerns such as dropped packets and DOS attacks when using TFO.
4. Use Proportional Rate Reduction for TCP (PRR). Packet losses indicate the network is in disorder or is congested. PRR, a new loss recovery algorithm, retransmits smoothly to recover losses during network congestion. The algorithm is faster than the current mechanism by adjusting the transmission rate according to the degree of losses. PRR is now part of the Linux kernel and is in the process of becoming part of the TCP standard.
In addition, we are developing algorithms to recover faster on noisy mobile networks, as well as a guaranteed 2-RTT delivery during startup. All our work on TCP is open-source and publicly available. We disseminate our innovations through the Linux kernel, IETF standards proposals, and research publications. Our goal is to partner with industry and academia to improve TCP for the whole Internet. Please watch this blog and http://code.google.com/speed/ for further information.
Yuchung Cheng works on the transport layer to make the Web faster. He believes the current transport layer badly needs an overhaul to catch up with other (networking) technologies. He can be reached at ycheng@google.com.
Posted by Scott Knaster, Editor
Labels:
faster web
Location:
Mountain View, CA, USA
Friday, 20 January 2012
Fridaygram: don’t censor the web, rediscovering Darwin, beautiful nebula
By Scott Knaster, Google Code Blog Editor
Last Wednesday, the web looked very different than it usually does. Dozens of popular sites went dark or were modified in some way. We censored the logo on our homepage. As you probably know by now, all this was done to call attention to prospective legislation being debated by the U.S. Congress: the Stop Online Piracy Act (SOPA) and the PROTECT IP Act (PIPA). These bills would censor the web, eliminate due process, and despite their titles, would not stop piracy.
We asked you to take action by signing a petition to Congress, and you responded. More than 7 million people in the U.S. added their names to the petition. We’re asking you to please keep sharing the petition with your friends at http://www.google.com/takeaction.
Let’s go from the U.S. Congress to the British Geological Survey, where Howard Falcon-Lang recently discovered a wooden cabinet tucked away in a corner. Inside the cabinet were rock samples with the signature C. Darwin, Esquire. As in Charles Darwin. It turns out that these samples were collected by Darwin during his HMS Beagle voyages in the 1830s, and had been misplaced for 165 years. Probably they’ll keep better track of the Darwin samples now.
Finally, for something that’s just really cool, please take a look at this video that zooms into an image of the Helix Nebula in the constellation Aquarius. Enjoy!
Fridaygram posts are generally just for fun, although we’ve put on our serious hat for the main item today. Fridaygrams are designed for your Friday afternoon and weekend enjoyment. Each Fridaygram item must pass only one test: it has to be interesting to us nerds.
Labels:
Fridaygram
Location:
Mountain View, CA, USA
Photoshop Shortcuts
1. Select Tools | |
---|---|
v | Move tool |
m (shift+m) | Rectangular Marquee Tool (Elliptical Marquee tool) |
l (shift+l) | Lasso tool (Polygonal Magnetic Lasso tool) |
w (shift+w) | Magic Wand tool (Quick Selection tool) |
c (shift+c) | Crop tool (Slide tool, Slide Select tool) |
i (shift+i) | Eyedropper tool (Color Sampler tool, Note Tool, Count Tool) |
j (shift+j) | Spot Healing Brush tool (Healing Brush tool, Patch tool, Red Eye tool) |
b (shift+b) | Brush tool (Pencil tool, Color Replacement tool, Mixer Brush tool) |
s (shift+s) | Clone Stamp tool (Pattern Stamp tool) |
y (shift+y) | History Brush tool (Art History Brush tool) |
e (shift+e) | Eraser tool (Background Eraser tool, Magic Eraser tool) |
g (shift+g) | Gradient tool (Paint Bucket tool) |
o (shift+o) | Dodge tool (Burn tool, Sponge tool) |
p (shift+p) | Pen tool (Freeform Pen tool) |
t (shift+t) | Horizontal Type tool (Vertical Type tool, Type Mask tools) |
a (shift+a) | Path Selection tool (Direct Selection tool) |
u (shift+u) | Rectangle tool (Rounded Rectangle tool, Ellipse tool, Polygon tool, Line tool, Custom Shape tool) |
k (shift+k) | 3D Object Rotate tool (Roll, Pan, Slide, Scale tool). PS extended only |
n (shift+n) | 3D Camera Rotate tool (Roll,Pan, Walk, Zoom tool). PS extended only |
h | Hand tool |
r | Rotate View tool |
z | Zoom tool |
2. View Images | |
---|---|
ctrl+tab | Cycle through open documents |
shift+ctrl+tab | Switch to previous document |
shift+ctrl+w | Close a file in Photoshop and open Bridge |
q | Toggle between Standard mode and Quick Mask mode |
f / shift+f | Toggle forward / toggle backward between Standard Screen Mode, Maximized Screen Mode, Full Screen Mode, and Full Screen Mode with menu bar |
space+f / space+shift+f | Toggle canvas color forward / toggle canvas color backwards |
Double-click Hand tool | Fit image in window |
ctrl+1 | Magnify 100% |
space | Temporary switch to Hand tool (when not in text-edit mode) |
shift+drag | |
ctrl+space | Temporarily switch to Zoom In tool |
alt+space | Temporarily switch to Zoom Out tool |
space+drag | Move Zoom marquee while dragging with the Zoom tool |
shift+enter in Navigator panel zoom percentage box | Apply zoom percentage, and keep zoom percentage box active |
ctrl+drag over preview in Navigator panel | Zoom in on specified area of an image |
space+drag, or drag view area box in Navigator panel | Scroll image with Hand tool |
page up or page down | Scroll up or down 1 screen |
shift+page up or page down | Scroll up or down 10 units |
home or end | Move view to upper-left corner or lower right corner |
\ (backslash) | Toggle layer mask on/off as rubylith (layer mask must be selected) |
3. Puppet Warp | |
---|---|
esc | Cancel completely |
ctrl+z | Undo last pin adjustment |
ctrl+a | Select all pins |
ctrl+d | Deselect all pins |
shift+click | Select multiple pins |
shift+drag | Move multiple selected pins |
h | Temporarily hide pins |
4. Refine Edge | |
---|---|
ctrl+alt+r | Open the Refine Edge dialog box |
f | Cycle forward through preview modes |
shift+f | Cycle (backward) through preview modes |
x | Toggle between original image and selection preview |
p | Toggle between original selection and refined version |
j | Toggle radius preview on and off |
e | Toggle between Refine Radius and Erase Refinements tools |
5. Filter Gallery | |
---|---|
alt+click a filter | Apply a new filter on top of selected |
alt+click a disclosure triangle | Open/close all disclosure triangles |
ctrl | Change Cancel button to Default |
alt | Change Cancel button to Reset |
ctrl+z | Undo/Redo |
ctrl+shift+z | Step forward |
ctrl+alt+z | Step backward |
6. Liquify | |
---|---|
w | Forward Warp tool |
r | Reconstruct tool |
c | Twirl Clockwise tool |
s | Pucker tool |
b | Bloat tool |
o | Push Left tool |
m | Mirror tool |
t | Turbulence tool |
f | Freeze Mask tool |
d | Thaw Mask tool |
alt+tool | Reverse direction for Bloat, Pucker, Push Left, and Mirror tools |
alt+drag in preview with Reconstruct tool, Displace, Amplitwist, or Affine mode selected | Continually sample the distortion |
arrow left / arrow right in Brush Size, Density, Pressure, Rate, or Turbulent Jitter text box | Decrease/increase brush size by 2 (or density, pressure, rate, or turbulent jitter by 1). Hold down shift to decrease/increase by 10 |
arrow left / arrow right with Brush Size, Density, Pressure, Rate, or Turbulent Jitter slider showing | Decrease/increase brush size by 2 (or density, pressure, rate, or turbulent jitter by 1). Hold down shift to decrease/increase by 10 |
tab | Cycle through controls on right from top |
shift+tab | Cycle through controls on right from bottom |
alt | Change Cancel to Reset |
7. Vanishing Point | |
---|---|
x | Zoom 2x (temporary) |
ctrl++ / ctrl+- | Zoom in / Zoom out |
ctrl+0 | Fit in view |
Double-click Zoom tool | Zoom to center at 100% |
] / [ | Increase / Decrease brush size (Brush, Stamp tools) |
shift+] / shift+[ | Increase / Decrease brush hardness (Brush, Stamp tools) |
ctrl+z | Undo last action |
ctrl+shift+z | Redo last action |
ctrl+d | Deselect all |
ctrl+h | Hide selection and planes |
arrow keys | Move selection 1 pixel |
shift+arrow keys | Move selection 10 pixels |
ctrl+c | Copy |
ctrl+v | Paste |
ctrl+shift+t | Repeat last duplicate and move |
ctrl+alt+t | Create a floating selection from the current selection |
ctrl+drag | Fill a selection with image under the pointer |
ctrl+alt+drag | Create a duplicate of the selection as a floating selection |
alt+shift to rotate | Constrain selection to a 15° rotation |
ctrl+click the plane | Select a plane under another selected plane |
ctrl+drag | Create 90 degree plane off parent plane |
backspace | Delete last node while creating plane |
Double-click the Create Plane tool | Make a full canvas plane, square to the camera |
ctrl+shift+h | Show/hide measurements (Photoshop Extended only) |
ctrl+e | Export to a DFX file (Photoshop Extended only) |
ctrl+shift+e | Export to a 3DS file (Photoshop Extended only) |
8. Camera Raw Dialog Box | |
---|---|
z | Zoom tool |
h | Hand tool |
i | White Balance tool |
s | Color Sampler tool |
c | Crop tool |
a | Straighten tool |
b | Spot Removal tool |
e | Red Eye Removal tool |
ctrl+alt+1 | Basic panel |
ctrl+alt+2 | Tone Curve panel |
ctrl+alt+3 | Detail panel |
ctrl+alt+4 | HSL/Grayscale panel |
ctrl+alt+5 | Split Toning panel |
ctrl+alt+6 | Lens Corrections panel |
ctrl+alt+7 | Camera Calibration panel |
ctrl+alt+8 | Presets panel |
ctrl+alt+9 | Open Snapshots panel |
ctrl+alt+shift+t | Parametric Curve Targeted Adjustment tool |
ctrl+alt+shift+h | Hue Targeted Adjustment tool |
ctrl+alt+shift+s | Saturation Targeted Adjustment tool |
ctrl+alt+shift+l | Luminance Targeted Adjustment tool |
ctrl+alt+shift+g | Grayscale Mix Targeted Adjustment tool |
t | Last-used Targeted Adjustment tool |
k | Adjustment Brush tool |
g | Graduated Filter tool |
] / [ | Increase/decrease brush size |
shift+] / shift+[ | Increase/decrease brush feather |
= / - | Increase/decrease Adjustment Brush tool flow in increments of 10 |
alt | Temporarily switch from Add to Erase mode for the Adjustment Brush tool, or from Erase to Add mode |
alt+] / alt+[ | Increase/decrease temporary Adjustment Brush tool size |
alt+shift+] / alt+shift+[ | Increase/decrease temporary Adjustment Brush tool feather |
alt+= / alt+- | Increase/decrease temporary Adjustment Brush tool flow in increments of 10 |
n | Switch to New mode from Add or Erase mode of the Adjustment Brush tool or the Graduated Filter |
m | Toggle Auto Mask for Adjustment Brush tool |
y | Toggle Show Mask for Adjustment Brush tool |
v | Toggle pins for Adjustment Brush tool, Toggle overlay for Graduated Filter, Spot Removal tool, or Red Eye Removal tool. |
l or ctrl+] | Rotate image left |
r or ctrl+[ | Rotate image right |
ctrl++ / ctrl+- | Zoom in / Zoom out |
ctrl | Temporarily switch to Zoom In tool. (Doesn't work when Straighten tool is selected. If Crop tool is active, temporarily switches to Straighten tool.) |
alt | Temporarily switch to Zoom Out tool and change the Open Image button to Open Copy and the Cancel button to Reset. |
p | Toggle preview |
f | Full screen mode |
shift | Temporarily activate the White Balance tool and change the Open Image button to Open Object. (Does not work if Crop tool is active.) |
Click the first point; shift+click additional points | Select multiple points in Curves panel |
ctrl+click in preview | Add point to curve in Curves panel |
arrow keys | Move selected point in Curves panel (1 unit) |
shift+arrow keys | Move selected point in Curves panel (10 units) |
ctrl+r | Open selected images in Camera Raw dialog box from Bridge |
shift+double-click image | Open selected images from Bridge bypassing Camera Raw dialog box |
alt+drag Exposure, Recovery, or Black sliders | Display highlights that will be clipped in Preview |
o | Highlight clipping warning |
u | Shadows clipping warning |
ctrl+1 ... 5 | (Filmstrip mode) Add 1 - 5 star rating |
ctrl+. (period) / ctrl+, (comma) | (Filmstrip mode) Increase/decrease rating |
ctrl+6 | (Filmstrip mode) Add red label |
ctrl+7 | (Filmstrip mode) Add yellow label |
ctrl+8 | (Filmstrip mode) Add green label |
ctrl+9 | (Filmstrip mode) Add blue label |
ctrl+shift+0 | (Filmstrip mode) Add purple label |
ctrl+k | Camera Raw preferences |
ctrl+alt (on open) | Deletes Adobe Camera Raw preferences |
9. Black-and-White Dialog Box | |
---|---|
shift+ctrl+alt+b | Open the Black-and-White dialog box |
arrow up/arrow down | Increase/decrease selected value by 1% |
shift+arrow up/arrow down | Increase/decrease selected value by 10% |
Click+drag on the image | Change the values of the closest color slider |
10. Curves | |
---|---|
ctrl+m | Open the Curves dialog box |
+ / - | Select next / previous point on the curve |
shift+click the points | Select multiple points on the curve |
ctrl+d | Deselect a point |
Select a point and press delete | Delete a point on the curve |
arrow keys | Move the selected point 1 unit |
shift+arrow keys | Move the selected point 10 units |
alt+drag black/white point sliders | Display highlights and shadows that will be clipped |
ctrl+click the image | Set a point to the composite curve |
shift+ctrl+click the image | Set a point to the channel curves |
alt+click the field | Toggle grid size |
11. Select and Move Objects | |
---|---|
Any marquee tool (except single column and single row), press space+drag | Reposition marquee while selecting |
Any selection tool+shift+drag | Add to a selection |
Any selection tool+alt+drag | Subtract from a selection |
Any selection tool (except Quick Selection tool)+shift-alt+drag | Intersect a selection |
shift+drag | Constrain marquee to square or circle (if no other selections are active) |
alt+drag | Draw marquee from center (if no other selections are active) |
shift+alt+drag | Constrain shape and draw marquee from center |
ctrl | Switch to Move tool (except when Hand, Slice, Path, Shape, or any Pen tool is selected) |
alt+drag | Switch from Magnetic Lasso tool to Lasso tool |
alt+click | Switch from Magnetic Lasso tool to polygonal Lasso tool |
enter/esc or ctrl+. (period) | Apply/cancel an operation of the Magnetic Lasso |
Move tool+alt+drag selection | Move copy of selection |
Any selection+arrow keys | Move selection area 1 pixel |
Move tool+arrow keys | Move selection 1 pixel |
ctrl+arrow keys | Move layer 1 pixel when nothing selected on layer |
Magnetic Lasso tool+[ / ] | Increase/decrease detection width |
Crop tool+enter or esc | Accept cropping or exit cropping |
/ (forward slash) | Toggle crop shield off and on |
Ruler tool+alt+drag end point | Make protractor |
shift+drag guide | Snap guide to ruler ticks (except when View Snap is unchecked) |
alt+drag guide | Convert between horizontal and vertical guide |
12. Transform Selections, Selection Borders, and Paths | |
---|---|
alt | Transform from center or reflect |
shift | Constrain |
ctrl | Distort |
enter | Apply |
ctrl+. (period) or esc | Cancel |
ctrl+alt+t | Free transform with duplicate data |
ctrl+shift+alt+t | Transform again with duplicate data |
13. Edit Paths | |
---|---|
Direct selection tool+shift+click | Select multiple anchor points |
Direct selection tool+alt+click | Select entire path |
Pen (any Pen tool), Path Selection or Direct Selection tool+ctrl+alt+drag | Duplicate a path |
ctrl | Switch from Path Selection, Pen, Add Anchor Point, Delete Anchor Point, or Convert Point tools, to Direct Selection tool |
alt | Switch from Pen tool or Freeform Pen tool to Convert Point tool when pointer is over anchor or direction point |
Magnetic Pen tool, double-click | Close path |
Magnetic Pen tool, alt-double-click | Close path with straight-line segment |
14. Painting | |
---|---|
Any painting tool+shift+alt+right-click and drag | Select foreground color from color picker |
Any painting tool+alt or any shape tool+alt (except when Paths option is selected) | Select foreground color from image with Eyedropper tool |
Eyedropper tool+alt+click | Select background color |
Eyedropper tool+shift | Color sampler tool |
Color sampler tool+alt+click | Deletes color sampler |
Any painting or editing tool+1...9 | Set opacity, tolerance, strength, or exposure for painting mode. 0 = 100%, 1 = 10%. Two numbers in quick succession (e.g. 45 = 45%) When airbrush option is enabled, use shift+1...9) |
Any painting or editing tool+shift+number keys | Sets flow for painting mode 0 = 100%, 1 = 10%. Two numbers in quick succession (e.g. 45 = 45%) When airbrush option is enabled, use shift+1...9) |
alt+shift+1...9 | Mixer Brush changes Mix setting |
0...9 | Mixer Brush changes Wet setting |
0 | Mixer Brush changes Wet and Mix to zero |
shift++ / shift+- | Cycle through blending modes |
backspace or shift+backspace | Open Fill dialog box on background or standard layer |
alt+backspace or ctrl+backspace | Fill with foreground or background color |
ctrl+alt+backspace | Fill from history |
shift+backspace | Displays Fill dialog box |
/ (forward slash) | Lock transparent pixels on/off |
Any painting tool+shift+click | Connects points with a straight line |
15. Blending Modes | |
---|---|
shift++ / shift+- | Cycle through blending modes |
shift+alt+n | Normal |
shift+alt+i | Dissolve |
shift+alt+q | Behind (Brush tool only) |
shift+alt+r | Clear (Brush tool only) |
shift+alt+k | Darken |
shift+alt+m | Multiply |
shift+alt+b | Color Burn |
shift+alt+a | Linear Burn |
shift+alt+g | Lighten |
shift+alt+s | Screen |
shift+alt+d | Color Dodge |
shift+alt+w | Linear Dodge |
shift+alt+o | Overlay |
shift+alt+f | Soft Light |
shift+alt+h | Hard Light |
shift+alt+v | Vivid Light |
shift+alt+j | Linear Light |
shift+alt+z | Pin Light |
shift+alt+l | Hard Mix |
shift+alt+e | Difference |
shift+alt+x | Exclusion |
shift+alt+u | Hue |
shift+alt+t | Saturation |
shift+alt+c | Color |
shift+alt+y | Luminosity |
Sponge tool+shift+alt+d | Desaturate |
Sponge tool+shift+alt+s | Saturate |
Dodge tool/Burn tool+shift+alt+s | Dodge/burn shadows |
Dodge tool/Burn tool+shift+alt+m | Dodge/burn midtones |
Dodge tool/Burn tool+shift+alt+h | Dodge/burn highlights |
shift+alt+n | Set blending mode to Threshold for bitmap images, Normal for all other images |
16. Select and Edit text | |
---|---|
ctrl+drag type when Type layer is selected | Move type in image |
shift+arrow keys, ctrl+shift+arrow keys etc. | Select Characters: Use Standard Windows Editing Shortcuts |
shift+click | Select characters from insertion point to mouse click point |
shift+click | Create a new text layer, when a text layer is selected in the Layers panel |
Double-click, triple-click, quadruple-click, or quintuple-click | Select a word, line, paragraph, or story |
ctrl+h | Show/Hide selection on selected type |
ctrl | Display the bounding box for transforming text when editing text, or activate Move tool if cursor is inside the bounding box |
ctrl+drag a bounding box handle | Scale text within a bounding box when resizing the bounding box |
space+drag | Move text box while creating text box |
17. Format Type | |
---|---|
Horizontal Type tool+ctrl+shift+l, c, or r | Align left, center, or right |
Vertical Type tool+ctrl+shift+l, c, or r | Align top, center, or bottom |
ctrl+shift+x | Choose 100% horizontal scale |
ctrl+shift+alt+x | Choose 100% vertical scale |
ctrl+shift+alt+a | Choose Auto leading |
ctrl+shift+q | Choose 0 for tracking |
ctrl+shift+j | Justify paragraph, left aligns last line |
ctrl+shift+f | Justify paragraph, justifies all |
ctrl+shift+alt+h | Toggle paragraph hyphenation on/off |
ctrl+shift+alt+t | Toggle single/every-line composer on/off |
ctrl+shift+; | Decrease or increase type size of selected text 2 points or pixels |
alt+arrow down or arrow up | Decrease or increase leading 2 points or pixels |
shift+alt+arrow down or arrow up | Decrease or increase baseline shift 2 points or pixels |
alt+arrow left or arrow right | Decrease or increase kerning/tracking 20/1000 ems |
18. Slicing and Optimizing | |
---|---|
ctrl | Toggle between Slice tool and Slice Selection tool |
shift+drag | Draw square slice |
alt+drag | Draw from center outward |
shift+alt+drag | Draw square slice from center outward |
space+drag | Reposition slice while creating slice |
Right-click slice | Open context-sensitive menu |
All Panels | |
---|---|
alt+click New button | Set options for new items (except for Actions, Animation, Styles, Brushes, Tool Presets, and Layer Comps panels) |
alt+click delete button | Delete without confirmation (except for the Brush panel) |
shift+enter | Apply value and keep text box active |
tab | Show/Hide all panels |
shift+tab | Show/Hide all panels except the toolbox and options bar |
Select tool and press enter | Highlight options bar |
shift+arrow up/arrow down | Increase/decrease selected values by 10 |
Action Panel | |
---|---|
alt+click the check mark next to a command | Turn command on and all others off, or turns all commands on |
alt+click | Turn current modal control on and toggle all other modal controls |
alt+double-click action or action set | Change action or action set options |
Double-click recorded command | Display Options dialog box for recorded command |
ctrl+double-click an action | Play entire action |
alt+click the triangle | Collapse/expand all components of an action |
ctrl+click the Play button | Play a command |
alt+click the New Action button | Create new action and begin recording without confirmation |
shift+click the action/ command | Select contiguous items of the same kind |
ctrl+click the action/ command | Select discontiguous items of the same kind |
Adjustment Panel | |
---|---|
alt+3 (red), alt+4 (green), alt+5 (blue) | Choose specific channel for adjustment |
alt+2 | Choose composite channel for adjustment |
delete or backspace | Delete adjustment layer |
alt+click Auto button | Define Auto options for Levels or Curves |
Animation Panel (Frames Mode) | |
---|---|
shift+click second frame | Select/deselect multiple contiguous frames |
ctrl+click multiple frames | Select/deselect multiple discontiguous frames |
alt+Paste Frames command from the Panel pop-up menu | Paste using previous settings without displaying the dialog box |
Animation Panel (Timeline Mode, PS extended) | |
---|---|
space | Start playing the timeline or Animation panel |
alt+click the current-time display in the upper-left corner of the timeline. | Switch between timecode and frame numbers (current time view) |
alt+click | Expand and collapse list of layers |
Hold down the shift key when clicking the next/previous Frame buttons (on either side of the Play button). | Jump to the next/previous whole second in timeline |
Hold down the shift key while dragging the current time. | Increase playback speed |
Hold down the ctrl key while dragging the current time. | Decrease playback speed |
shift+drag | Snap an object (keyframe, the current time, layer in point, and so on) to the nearest object in timeline |
alt+drag (first or last keyframe in the selection) | Scale (evenly distribute to condensed or extended length) a selected group of multiple keyframes |
arrow left or page up | Back one frame |
arrow right or page down | Forward one frame |
shift+arrow left or shift+page up | Back ten frames |
shift+arrow right or shift+page down | Forward ten frames |
home / end | Move to the beginning / to the end of the timeline |
shift+home / shift+end | Move to the beginning / to the end of the work area |
arrow up | Move to "In" point of the current layer |
arrow down | Move to the "Out" point of the current layer |
shift+arrow up / shift+arrow down | Back 1 second / Forward 1 second |
esc | Return a rotated document to its original orientation |
Brush Panel | |
---|---|
alt+click brush | Delete brush |
Double-click brush | Rename brush |
alt+right click+drag left or right | Change brush size |
alt+right click+drag up or down | Decrease/increase brush softness/hardness |
, (comma) / . (period) | Select previous/next brush size |
shift+, (comma) / shift+. (period) | Select first/ Select last brush |
caps lock or shift+caps lock | Display precise cross hair for brushes |
shift+alt+p | Toggle airbrush option |
Channels Panel | |
---|---|
ctrl+3 (red), ctrl+4 (green), ctrl+5 (blue) | Select individual channels |
ctrl+2 | Select composite channel |
ctrl+click channel thumbnail, or alt+ctrl+3 (red), alt+ctrl+4 (green), alt+ctrl+5 (blue) | Load channel as selection |
ctrl+shift+click channel thumbnail. | Add to current selection |
ctrl+alt+click channel thumbnail | Subtract from current selection |
ctrl+shift+alt+click channel thumbnail | Intersect with current selection |
alt+click Save Selection As Channel button | Set options for Save Selection As Channel button |
ctrl+click Create New Channel button | Create a new spot channel |
shift+click color channel | Select/deselect multiple color-channel selection |
shift+click alpha channel | Select/deselect alpha channel and show/hide as a rubylith overlay |
Double-click alpha or spot channel thumbnail | Display channel options |
~ | Toggle composite and grayscale mask in Quick Mask mode |
Clone Source Panel | |
---|---|
alt+shift | Show Clone Source (overlays image) |
alt+shift+arrow keys | Nudge Clone Source |
alt+shift+; | Rotate Clone Source |
alt+shift+[ or ] | Scale (increase or reduce size) Clone Source |
Color Panel | |
---|---|
alt+click color in color bar | Select background color |
Right-click color bar | Display Color Bar menu |
shift+click color bar | Cycle through color choices |
History Panel | |
---|---|
alt+new Snapshot | Create a new snapshot |
Double-click snapshot name | Rename snapshot |
ctrl+shift+z | Step forward through image states |
ctrl+alt+z | Step backward through image states |
alt+click the image state | Duplicate any image state, except the current state |
alt+clear History | Permanently clear history (no Undo) in History panel pop-up menu |
Info Panel | |
---|---|
Click eyedropper icon | Change color readout modes |
Click crosshair icon | Change measurement units |
Layers Panel | |
---|---|
ctrl+click layer thumbnail | Load layer transparency as a selection |
ctrl+shift+click layer thumbnail. | Add to current selection |
ctrl+alt+click layer thumbnail. | Subtract from current selection |
ctrl+shift+alt+click layer thumbnail. | Intersect with current selection |
ctrl+click filter mask thumbnail | Load filter mask as a selection |
ctrl+g | Group layers |
ctrl+shift+g | Ungroup layers |
ctrl+alt+g | Create/release clipping mask |
ctrl+alt+a | Select all layers |
ctrl+shift+e | Merge visible layers |
alt+click New Layer button | Create new empty layer with dialog box |
ctrl+click New Layer button | Create new layer below target layer |
alt+.. (period) | Select top layer |
alt+,, (comma) | Select bottom layer |
shift+alt+[ or ] | Add to layer selection in Layers panel |
alt+[ or ] | Select next layer down/up |
ctrl+[ or ] | Move target layer down/up |
ctrl+shift+alt+e | Merge a copy of all visible layers into target layer |
Highlight layers you want to merge, then ctrl+e | Merge layers |
ctrl+shift+[ or ] | Move layer to bottom or top |
alt+ Merge Down command from the Panel pop-up menu | Copy current layer to layer below |
alt+ Merge Visible command from the Panel pop-up menu | Merge all visible layers to a new layer above the currently selected layer |
Right-click the eye icon | Show/hide this layer/layer group only or all layers/layer groups |
alt+ click the eye icon | Show/hide all other currently visible layers |
/ (forward slash) | Toggle lock transparency for target layer, or last applied lock |
Double-click layer effect/style | Edit layer effect/style, options |
alt-double-click layer effect/style | Hide layer effect/style |
Double-click layer | Edit layer style |
shift+click vector mask thumbnail | Disable/enable vector mask |
Double-click layer mask thumbnail | Open Layer Mask Display Options dialog box |
shift+click layer mask thumbnail | Toggle layer mask on/off |
shift+click filter mask thumbnail | Toggle filter mask on/off |
alt+click layer mask thumbnail | Toggle between layer mask/composite image |
alt+click filter mask thumbnail | Toggle between filter mask/composite image |
\ (backslash), or shift+alt+click | Toggle rubylith mode for layer mask on/off |
Double-click type layer thumbnail | Select all type; temporarily select Type tool |
alt+click the line dividing two layers | Create a clipping mask |
Double-click the layer name | Rename layer |
Double-click the filter effect | Edit filter settings |
Double-click the Filter Blending icon | Edit the Filter Blending options |
ctrl+click New Group button | Create new layer group below current layer/layer set |
alt+click New Group button | Create new layer group with dialog box |
alt+click Add Layer Mask button | Create layer mask that hides all/selection |
ctrl+click Add Layer Mask button | Create vector mask that reveals all/path area |
ctrl+alt+click Add Layer Mask button | Create vector mask that hides all or displays path area |
Right-click layer group and choose Group Properties, or double-click group | Display layer group properties |
shift+click | Select/deselect multiple contiguous layers |
ctrl+click | Select/deselect multiple discontiguous layers |
Layers Comps Panel | |
---|---|
alt+click Create New Layer Comp button | Create new layer comp without the New Layer Comp box |
Double-click layer comp | Open Layer Comp Options dialog box |
Double-click layer comp name | Rename in-line |
shift+click | Select/deselect multiple contiguous layer comps |
ctrl+click | Select/deselect multiple discontiguous layer comps |
Paths Panel | |
---|---|
ctrl+click pathname | Load path as selection |
ctrl+shift+click pathname | Add path to selection |
ctrl+alt+click pathname | Subtract path from selection |
ctrl+shift+alt+click pathname | Retain intersection of path as selection |
ctrl+shift+h | Hide path |
alt+click button | Set options for Fill Path with Foreground Color button, Stroke Path with Brush button, Load Path as a Selection button, Make Work Path from Selection button, and Create New Path button |
Swatches Panel | |
---|---|
Click in empty area of panel | Create new swatch from foreground color |
ctrl+click swatch | Set swatch color as background color |
alt+click swatch | Delete swatch |
20. 3D tools (PS Extended) | |
---|---|
n | Enable 3D camera tools |
alt+ctrl+x | Hide nearest surface |
alt+shift+ctrl+x | Show all surfaces |
right-click / alt | Change between Rotate, Roll, Drag, Slide, and Scale 3D Object Tool |
shift | Scale on the Y plane |
21. Measurement (PS Extended) | |
---|---|
shift+ctrl+m | Record a measurement |
ctrl+d | Deselects all measurements |
ctrl+a | Selects all measurements |
shift+ctrl+h | Hide/show all measurements |
backspace | Removes a measurement |
arrow keys | Nudge the measurement |
shift+arrow keys | Nudge the measurement in increments |
ctrl+left/right arrow key | Extend/shorten selected measurement |
shift+ctrl+left/right arrow key | Extend/shorten selected measurement in increments |
ctrl+up/down arrow key | Rotate selected measurement |
22. DICOM files (PS Extended) | |
---|---|
z | Zoom tool |
h | Hand tool |
w | Window Level tool |
ctrl+a | Select all frames |
ctrl+d | Deselect all frames except the current frame |
arrow keys | Navigate through frames |
23. Extract and Pattern Maker (plug-in) |
---|
Extract and Pattern Maker | |
---|---|
ctrl+0 | Fit in window |
ctrl++ / ctrl+- | Zoom in / Zoom out |
tab | Cycle through controls on right from top |
shift+tab | Cycle through controls on right from bottom |
space | Temporarily activate Hand tool |
alt | Change Cancel to Reset |
Extract Only | |
---|---|
b | Edge Highlighter tool |
g | Fill tool |
i | Eyedropper tool |
c | Cleanup tool |
t | Edge Touchup tool |
alt+Edge Highlighter/Eraser tool | Toggle between Edge Highlighter tool and Eraser tool |
ctrl with Edge Highlighter tool selected | Toggle Smart Highlighting |
alt+delete | Remove current highlight |
ctrl+delete | Highlight entire image |
shift+click with Fill tool selected | Fill foreground area and preview extraction |
ctrl+drag | Move mask when Edge Touchup tool is selected |
alt+drag | Add opacity when Cleanup tool is selected |
x | Toggle Show menu options in preview between Original and Extracted |
shift+x | Enable Cleanup and Edge Touchup tools before preview |
f | Cycle through Display menu in preview from top to bottom |
shift+f | Cycle through Display menu in preview from bottom to top |
arrow down/arrow up in Brush Size text box | Decrease/increase brush size by 1 |
arrow left/arrow right with Brush Size Slider showing | Decrease/increase brush size by 1 |
0...9 | Set strength of Cleanup or Edge Touchup tool |
Pattern Maker Only | |
---|---|
ctrl+d | Delete current selection |
ctrl+z | Undo a selection move |
ctrl+g | Generate or generate again |
shift+alt+select | Intersect with current selection |
x | Toggle view: original/generated pattern |
home | Go to first tile in Tile History |
end | Go to last tile in Tile History |
arrow left, page up | Go to previous tile in Tile History |
arrow right, page down | Go to next tile in Tile History |
delete | Delete current tile from Tile History |
arrow right, arrow left, arrow up, or arrow down | Nudge selection when viewing the original |
shift+arrow right, arrow left, arrow up, or arrow down | Increase selection nudging when viewing the original |
24. Function keys | |
---|---|
f1 | Start Help |
f2 | Cut |
f3 | Copy |
f4 | Paste |
f5 | Show/Hide Brush panel |
f6 | Show/Hide Color panel |
f7 | Show/Hide Layers panel |
f8 | Show/Hide Info panel |
f9 | Show/Hide Actions panel |
f12 | Revert |
shift+f5 | Fill |
shift+f6 | Feather Selection |
shift+f7 | Inverse Selection |
Subscribe to:
Posts (Atom)