Supercharge your PowerPoint productivity with
|
PPTools |
ProblemYou open a presentation created on a Mac in your Windows version of PowerPoint and get a message similar to these: QuickTime(TM) and a Photo - JPEG decompressor are needed to see this picture. QuickTime(TM) and a TIFF decompressor are needed to see this picture. The message may mention some other type of decompressor. SolutionPPT2000: QuickTime PICT Placeholder Appears in Place of Graphic The problem, in a nutshell, is that PowerPoint/Windows doesn't support QuickTime compression; installing QuickTime on the PC won't help. You'll need to go back to the Mac to fix the problem by re-inserting the graphic into PowerPoint.
Note: DO NOT drag and drop or copy/paste the graphic into PowerPoint. That's what probably caused the problem in the first place. These instructions are very generic. The menu options for your graphics program will be different; you'll probably need to do some experimenting to find the right set of options. If you come up with a good recipe you'd like to include here, post a message in the PowerPoint Newsgroup. Another possible fixThis is still in the testing stage, but it's worth a try (on a COPY of your presentation, please!). Notes:
Sub PNG_Me()
' Exports pictures to PNG, reimports them
Dim sPath As String
Dim dEnlargementFactor
' EDIT THE FOLLOWING:
' Name of folder for temp files
' It should always end with a path separator character:
' \ for PC, : (colon) for Mac
' The folder must already exist
sPath = "Macintosh HD:temp:"
' We enlarge the images before exporting them
' The higher the enlargement factor, the higher the resolution of the converted file
' This also serves to "optimize" your file sizes somewhat
dEnlargementFactor = 2
' =========== NO USER-SERVICEABLE PARTS PAST THIS POINT
Dim oOriginalPic As Shape
Dim oNewPic As Shape
Dim oSl As Slide
Dim oSh As Shape
Dim dLeft As Double
Dim dTop As Double
Dim dHeight As Double
Dim dWidth As Double
Dim sImageName As String
For Each oSl In ActivePresentation.Slides
For Each oSh In oSl.Shapes
' Touch only pictures
If oSh.Type = msoPicture Then
' Touch only pictures that haven't yet been touched
If Len(oSh.Tags("PINGED")) = 0 Then
With oSh
sImageName = sPath & "Slide" & CStr(oSl.SlideID) & "_" & oSh.Name & ".PNG"
' memorize size/position
dTop = .Top
dWidth = .Width
dHeight = .Height
dLeft = .Left
' Enlarge, then export to PNG; lock aspect ratio first
oSh.LockAspectRatio = msoTrue
oSh.Height = oSh.Height * dEnlargementFactor
oSh.Export sImageName, ppShapeFormatPNG
' and delete the shape
.Delete
End With
' import saved picture
Set oNewPic = oSl.Shapes.AddPicture(sImageName, msoFalse, msoTrue, dLeft, dTop, dWidth, dHeight)
Call oNewPic.Tags.Add("PINGED", "PONGED")
End If
End If
Next
Next
End Sub
See How do I use VBA code in PowerPoint? to learn how to use this example code. Español Deutsch Français Português Italiano Nederlands Greek Japanese Korean Chinese |
Supercharge your PPT Productivity with PPTools
|
content authoring & site maintenance by |
QuickTime and a TIFF (or JPEG) decompressor are needed to see this picture
http://www.pptfaq.com/FAQ00534.htm
Last update 09 June, 2007