[iPhone] XCode png-compression messes with alpha

When XCode bundles an iPhone application, it converts all .PNG resources into a non-standard format. This compression seems to be reduce precision of the alpha-channel of my .PNGs which causes artifacts in my application. Does anyone know if there is any way to get control over this behavior?

I have the exact same problem. XCode will convert PNG images so that the header chunk is CgBI (instead of IHDR), and that confuses 3rd party libs like libpng, since a character in Apple's header indicates that the data is in a private format. This operation only takes place for the target device - the simulator is unaffected. There are 4 ways to work around the issue (from easiest to hardest).
1) Rename your images to something else (eg. .ppng), and the XCode packaging tool will ignore your file.
2) According to the following link (http://www.imgtec.com/powervr/insider/sdk/KhronosOpenGLES1xMBX.asp), you need to add the following build settings defintion for each target. IPHONEOPTIMIZEOPTIONS=-skip-PNGs I'm embaressed to say that I still haven't figured out where in XCode project settings to add this.
3) Teach your PNG decoder to handle Apple's CgBI format.
4) Use the Cocoa UIImage classes or the Texture2D.m class.

Similar Messages

  • ImageIO PNG Writing Slow With Alpha Channel

    I'm writing a project that generates images with alpha channels, which I want to save in PNG format. Currently I'm using javax.ImageIO to do this, using statements such as:
    ImageIO.write(image, "png", file);
    I'm using JDK 1.5.0_06, on Windows XP.
    The problem is that writing PNG files is very slow. It can take 9 or 10 seconds to write a 640x512 pixel image, ending up at around 300kb! I have read endless documentation and forum threads today, some of which detail similar problems. This would be an example:
    [http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6215304|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6215304]
    This surely must be resolvable, but after much searching I've yet to find a solution. If it makes any difference, I ONLY want to write png image, and ONLY with an alpha channel (not ever without), in case there are optimisations that that makes possible.
    If anyone can tell me how to address this problem, I'd be very grateful.
    Many thanks, Robert Redwood.

    This isn't a solution, but rather a refinement of the issue.
    Some of the sources I was reading were implying that the long save time might be due to a CPU heavy conversion process that had to take place before the BufferedImage could be saved. I decided to investigate:
    I loaded back in one of the (slowly) saved PNG images using ImageIO.read(file). Sure enough, the BufferedImage returned differed from the BufferedImage I had created. The biggest difference was the color model, which was DirectColorModel on the image I was generating, and was ComponentColorModel on the image I was loading back in.
    So I decided to manually convert the image to be the same as how it seemed to end up anyway. I wrote the following code:
          * Takes a BufferedImage object, and if the color model is DirectColorModel,
          * converts it to be a ComponentColorModel suitable for fast PNG writing. If
          * the color model is any other color model than DirectColorModel, a
          * reference to the original image is simply returned.
          * @param source The source image.
          * @return The converted image.
         public static BufferedImage convertColorModelPNG(BufferedImage source)
              if (!(source.getColorModel() instanceof DirectColorModel))
                   return source;
              ICC_Profile newProfile = ICC_Profile.getInstance(ColorSpace.CS_sRGB);
              ICC_ColorSpace newSpace = new ICC_ColorSpace(newProfile);
              ComponentColorModel newModel = new ComponentColorModel(newSpace, true, false, ComponentColorModel.TRANSLUCENT, DataBuffer.TYPE_BYTE);
              PixelInterleavedSampleModel newSampleModel = new PixelInterleavedSampleModel(DataBuffer.TYPE_BYTE, source.getWidth(), source.getHeight(), 4, source.getWidth() * 4, new int[] { 0, 1, 2, 3 });
              DataBufferByte newDataBuffer = new DataBufferByte(source.getWidth() * source.getHeight() * 4);
              ByteInterleavedRaster newRaster = new ByteInterleavedRaster(newSampleModel, newDataBuffer, new Point(0, 0));
              BufferedImage dest = new BufferedImage(newModel, newRaster, false, new Hashtable());
              int[] srcData = ((DataBufferInt)source.getRaster().getDataBuffer()).getData();
              byte[] destData = newDataBuffer.getData();
              int j = 0;
              byte argb = 0;
              for (int i = 0; i < srcData.length; i++)
                   j = i * 4;
                   argb = (byte)(srcData[i] >> 24);
                   destData[j] = argb;
                   destData[j + 1] = 0;
                   destData[j + 2] = 0;
                   destData[j + 3] = 0;
              //Graphics2D g2 = dest.createGraphics();
              //g2.drawImage(source, 0, 0, null);
              //g2.dispose();
              return dest;
         }My apologies if that doesn't display correctly in the post.
    Basically, I create a BufferedImage the hard way, matching all the parameters of the image I get when I load in a PNG with alpha channel.
    The last bit, (for simplicity), just makes sure I copy over the alpha channel of old image to the new image, and assumes the color was black. This doesn't make any real speed difference.
    Now that runs lightning quick, but interestingly, see the bit I've commented out? The alternative to setting the ARGB values was to just draw the old image onto the new image. For a 640x512 image, this command (drawImage) took a whopping 36 SECONDS to complete! This may hint that the problem is to do with conversion.
    Anyhow, I got rather excited. The conversion went quickly. Here's the rub though, the image took 9 seconds to save using ImageIO.write, just the same as if I had never converted it. :(
    SOOOOOOOOOOOO... Why have I told you all this?
    Well, I guess I think it narrows dow the problem, but eliminates some solutions (to save people suggesting them).
    Bottom line, I still need to know why saving PNGs using ImageIO is so slow. Is there any other way to fix this, short of writing my own PNG writer, and indeed would THAT fix the issue?
    For the record, I have a piece of C code that does this in well under a second, so it can't JUST be a case of 'too much number-crunching'.
    I really would appreciate any help you can give on this. It's very frustrating.
    Thanks again. Robert Redwood.

  • How to read and write Png and jpeg with  Alpha

    Hi
    I have trouble reading and writeing PNG and JPEGs that have an alpha channel (for transparency).
    Reading works, if i use Toolkit.getImage() method, but works NOT if i use ImageIO.read() method.
    Writing does NOT work using ImageIO.write()method. Instead i got a "java.lang.UnsupportedOperationException: Unsupported write variant!"
    See Test class and commandline output below:
    /****************START*****************************/
    package de.multivisual.bodo.test;
    import java.awt.*;
    import java.awt.image.*;
    import java.io.File;
    import java.net.URL;
    import java.util.Iterator;
    import javax.imageio.*;
    import javax.imageio.metadata.IIOMetadata;
    import javax.imageio.stream.ImageInputStream;
    import javax.imageio.stream.ImageOutputStream;
    public class AlphaChannelTest implements ImageObserver {
      Toolkit toolkit;
      Image img;
      public AlphaChannelTest() {
        super();
        toolkit = Toolkit.getDefaultToolkit();
        URL url =
          AlphaChannelTest.class.getResource(
            "/de/multivisual/bodo/test/" + "alphatest.png");
        img = toolkit.getImage(url);
        try {
          ImageInputStream imageInput =
            ImageIO.createImageInputStream(url.openStream());
          Iterator it = ImageIO.getImageReaders(imageInput);
          ImageReader reader = null;
          while (it.hasNext()) {
            reader = (ImageReader) it.next();
            System.out.println(reader.toString());
          reader.setInput(imageInput);
          ImageReadParam param = reader.getDefaultReadParam();
          BufferedImage bimg = reader.read(0, param);
          SampleModel samMod = bimg.getSampleModel();
          ColorModel colMod =       bimg.getColorModel();
          String[] propNames = bimg.getPropertyNames();
          IIOMetadata meta = reader.getImageMetadata(0);
          System.err.println("\n*****test image that was read using new Jdk 1.4 ImageIO.read() method");
          alphaTest(bimg);
        } catch (Exception e) {
          //e.printStackTrace();
        if (img != null)
          toolkit.prepareImage(img, -1, -1, this);
        try {
          synchronized (this) {
            System.out.println("wait");
            this.wait();
        } catch (Exception e) {
          e.printStackTrace();
        System.out.println("end");
      public void alphaTest(BufferedImage bi) {
        Raster raster = bi.getData();
        float[] sample = null;
        System.out.println("raster :");
        for (int y = 0; y < raster.getHeight(); y++) {
          for (int x = 0; x < raster.getWidth(); x++) {
            sample = raster.getPixel(x, y, sample);
            System.out.print("(");
            for (int i = 0; i < sample.length; i++) {
              System.out.print(":" + sample);
    System.out.print(")");
    System.out.println();
    Raster araster = bi.getAlphaRaster();
    if (araster == null){
         System.err.println("there is no Alpha channel!!!!!!!!!");
         return ;
    } else {
         System.out.println("Alpha channel found !");
    float[] asample = null;
    System.out.println("raster alpha:");
    for (int y = 0; y < araster.getHeight(); y++) {
    for (int x = 0; x < araster.getWidth(); x++) {
    asample = araster.getPixel(x, y, asample);
    for (int i = 0; i < asample.length; i++) {
    System.out.print(" " + asample[i]);
    System.out.println();
    String format ="PNG";
    System.out.println("##########Test Writing using new JDK1.4.1 ImageIO:");
    Iterator writers = ImageIO.getImageWritersByFormatName(format);
    ImageWriter writer = (ImageWriter) writers.next();
    ImageWriteParam param = writer.getDefaultWriteParam();
    ImageTypeSpecifier imTy = param.getDestinationType();
    ImageTypeSpecifier imTySp =
    ImageTypeSpecifier.createFromRenderedImage(bi);
    param.setDestinationType(imTySp);
    File f = new File("c:/tmp/myimage."+format);
    try {
    ImageOutputStream ios = ImageIO.createImageOutputStream(f);
    writer.setOutput(ios);
    writer.writeInsert(0, new IIOImage(bi, null, null), param);
    } catch (Exception e) {
         System.err.println("could not write "+format+" file with alpha channel !");
    e.printStackTrace();
    public boolean imageUpdate(
    Image img,
    int infoflags,
    int x,
    int y,
    int width,
    int height) {
    if ((toolkit.checkImage(img, -1, -1, null)
    & (ImageObserver.HEIGHT | ImageObserver.WIDTH | ImageObserver.ALLBITS))
    == 35) {
    int iw = img.getWidth(this);
    int ih = img.getHeight(this);
    BufferedImage bi = new BufferedImage(iw, ih, BufferedImage.TYPE_4BYTE_ABGR);
    Graphics2D big = bi.createGraphics();
    big.drawImage(img, 0, 0, this);
    System.err.println("+++++test image that was read using old Toolkti.getImage method");
    alphaTest(bi);
    synchronized (this) {
    this.notifyAll();
    return false;
    return true; // image is not yet completely loaded into memory
    public static void main(String[] args) {
    //     BufferedImage image = new
    // BufferedImage();
    new AlphaChannelTest();
    /*************************END********************/
    The commandline looks like this:
    [i]
    com.sun.imageio.plugins.png.PNGImageReader@d1fa5
    *****test image that was read using new Jdk 1.4 ImageIO.read() method
    raster :
    there is no Alpha channel!!!!!!!!!
    wait
    +++++test image that was read using old Toolkti.getImage method
    raster :
    Alpha channel found !
    raster alpha:
    ##########Test Writing using new JDK1.4.1 ImageIO:
    could not write PNG file with alpha channel !
    java.lang.UnsupportedOperationException: Unsupported write variant!
         at javax.imageio.ImageWriter.unsupported(ImageWriter.java:600)
         at javax.imageio.ImageWriter.writeInsert(ImageWriter.java:973)
         at de.multivisual.bodo.test.AlphaChannelTest.alphaTest(AlphaChannelTest.java:113)
         at de.multivisual.bodo.test.AlphaChannelTest.imageUpdate(AlphaChannelTest.java:135)
         at sun.awt.image.ImageWatched.newInfo(ImageWatched.java:55)
         at sun.awt.image.ImageRepresentation.imageComplete(ImageRepresentation.java:636)
         at sun.awt.image.ImageDecoder.imageComplete(ImageDecoder.java:135)
         at sun.awt.image.PNGImageDecoder.produceImage(PNGImageDecoder.java:511)
         at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:257)
         at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:168)
         at sun.awt.image.ImageFetcher.run(ImageFetcher.java:136)
    end

    in between i found out that the my png and jpeg test images did not have an alpha channel, since the tool i used to create them, did not write the alpha channel to disk.
    if i use png with alpha channel, then the read works correktly with ImageIO.read()
    however the read problem still remains for gifs and the write does not work for gifs and neither for pngs.
    whether jpegs can be read with alphachannel i don't know since i don't have a tool to create jpeg with alpha channel. (at least gimp and corel9 are not able to )
    and it is not possible to write the previous read png with alpha channel back as and jpeg with alpha channel

  • Graphics, ImageIO, and 32-bit PNG images with alpha-channels

    I have a series of 32-bit PNG images, all with alpha channels. I'm using ImageIO.read(File) : BufferedImage to read the PNG image into memory.
    When I call graphics.drawImage( image, 0, 0, null ); I see the image drawn, however all semi-transparent pixels have a black background, only 100% transparent pixels in the source image are transparent in the drawn image.
    The Graphics2D instance I'm drawing to is obtained from a BufferStrategy instance (I'm painting onto an AWT Canvas).
    Here's my code:
    Loading the image:
    public static BufferedImage getEntityImage(String nom, String state) {
              if( _entityImages.containsKey(nom) ) return _entityImages.get( nom );
              String path = "Entities\\" + nom + "_" + state + ".png";
              try {
                   BufferedImage image = read( path );
                   if( image != null ) _entityImages.put( nom, image );
                   return image;
              } catch(IOException iex) {
                   iex.printStackTrace();
                   return null;
         private static BufferedImage read(String fileName) throws IOException {
              fileName = Program.contentPath + fileName;
              File file = new File( fileName );
              if( !file.exists() ) return null;
              return ImageIO.read( new File( fileName ) );
         }Using the image:
    Graphics2D g = (Graphics2D)_bs.getDrawGraphics();
    g.setRenderingHint( RenderingHints.KEY_ANTIALIASING , RenderingHints.VALUE_ANTIALIAS_ON);
    public @Override void render(RenderContext r) {
              Point p = r.v.translateWorldPointToViewportPoint( getLoc() );
              int rad = getRadius();
              int x = (int) p.x - (rad / 2);
              int y = (int) p.y - (rad / 2);
              BufferedImage image = Images.getEntityImage( getCls(), "F" );
              r.g.drawImage( image, x, y, null );
         }

    You may want to check on you system and see what ImageReaders are available, it could be ImageIO is just not picking the best one, if not, then you can use getImageReaders to get an iterator of image readers, then choose the more appropriate one.

  • Export movie with alpha to png sequence

    I'm trying to export tweened animation to .png image sequence
    with alpha transparency.
    The individual png files appear to be clean -- but when I
    open the file sequence in QuickTime, it looses the 8-bit alpha.
    Anyone know how to get around this? Thanks!
    QT 7.4.1, 10.5.2, CS3

    MCs are dynamic and designed to play at runtime in the flash
    player - to export to video you simply
    need to convert them to Graphic symbols.
    --> Adobe Certified Expert *ACE*
    --> www.mudbubble.com
    --> www.keyframer.com
    xfiretyra wrote:
    > I've created a flash animation and I need to export it
    to Quick time or PNG
    > sequence so I then can importet to premiere. When I
    export it to Quicktime the
    > movie clips in the scenes doesn't play and the same with
    PNG. So now Im cuting
    > out all the movie clips to individual scenes. However
    this is a hell of a job
    > as when I paste the frames on to the scenes they don't
    end up on the right
    > place, centered on the page so I've to almost redo
    everything. Do you have any
    > good advice for me how to make it a bit easier?
    >

  • PNG 8-bit Indexed With Alpha

    Hello,
    I need to write PNG images in 8-bit indexed mode (
    Color Type 3... ?) with an alpha channel. I believe that the
    only way to do this is by putting the Alpha (or Matte) information
    into a PNG tRNS Chunk. I have heard that Fireworks can do this, but
    have not yet been successful. Please tell me how.
    BTW, I can write PNG files in 32-bit ARGB mode, but this is
    unacceptible because the compression is lossless and the files
    become huge. XnView supports this as well. Photoshop will not allow
    me to write PNG with Alpha. Can Fireworks help me? How?
    - Thank you, David Manpearl
    <dmanpearl_at_imatte_dot_com>

    DavidManpearl wrote:
    > Hello Linda,
    >
    > Thank you very much for your suggestion of making one of
    the image colors
    > represent transparent matte, as in a GIF format image.
    > Unfortunately, this cannot work for me as I need color
    information for all of
    > the pixels in the image, regardless of the setting of
    the matte, or alpha
    > channel value. Perhaps this is impossible for PNG with
    indexed color? The
    > answer to this question is what I hope to determine one
    way or the other
    > through this forum.
    Why not just export in 8-bit PNG format, with no
    transparency, and see
    if it works?
    Linda Rathgeber ACE ::: PVII
    http://www.projectseven.com
    Fireworks Newsgroup:
    news://forums.projectseven.com/fireworks/
    CSS Newsgroup: news://forums.projectseven.com/css/
    Adobe Community Expert - Fireworks
    Design Aid Kits:
    http://www.webdevbiz.com/pwf/index.cfm

  • I have some old cd's I have burned on itunes. How can I copy them to my iphone without using the cloud? I donot want to mess with my cloud settings because I am a technophobe . Please be gentle.

    I have some old cd's I have burned onto itunes. Howcan I copy them to my iphone without using the cloud? I donot want to mess with my cloud settings because I am a technophobe. Please be gentle

    Willy, the procdedure you describe works perfectly for AppleTV G1. In fact, I frequently play DTS music discs ripped to my iTunes library as Apple Lossless (ALAC) and synched to the ATV. What happens is that, as far as iTunes and the ATV are concerned, a conventional stereo 16/44 audio file is being played; however my reciever detects the DTS data stream, and instead of outputting static, it decodes the 5.1 channels correctly. This process parallels the way DTS discs were designed to be played back: a conventional CD player is connceted, via digital out, to a DTS-aware reciever/pre-amp and the two channels of static are recognized as 6 channels of DTS-encoded audio.
    However this process will only work if the player (CD, ATV, PC, etc.) sends a "bit-perfect" 16 bit/44.1 khz data stream to the decoding device. In the case of ATV G2 and G3, as has been discussed elsewhere, the unit resmaples all audio - including 16/44 PCM (Redbook CD)  - to 16/48. While this is not a big deal for conventional audio CDs, MP3s, and AAC files, it mangles the fragile DTS datastream and renders it undecodable. The resulting static that you hear is just like the static you would hear if you played a DTS CD on a non-DTS capable system.
    Sadly, I'm not aware of any easy way around this. You could use a program like Foobar (and the DTS plugin) to convert your DTS CDs to 6-ch .wav or .flac file. From there you could transcode the file to AC-3 and then mux it into a video container that ATV supports. You may need add a dummy video track, for iTunes/AppleTV to be ok with the file, though I'm not sure. This may be a lot of work.
    Sorry for the bad news. I wish that the iTunes/ATV ecosystem had better multi-channel audio support.
    Steven

  • I was messing with my keyboard languages and i put it on a different language, then i got distracted and my iphone went on autolock and now it wont unlock. What do i do? And if i restore it will it unlock my iphone?

    I was messing with my keyboard languages and i put it on a different language then i got distracted then my iphones autolock locked my phone and now when i try to unlock my phone it doesnt have the correct letters that i have in my password so now it wont unlock. If i restore it will unlock or will i just be screwed??
    HELP ASAP!

    Yo can't. apps are locked to the account thatpurchased them and in-app purchases can only be mad with the account that originally purchased the app.
    You will have to recover use of the first account
    How do I change or recover a forgotten Apple ID Password?
    If you've forgotten your Apple ID Password or want to change it, go to My Apple ID and follow the instructions. SeeChanging your Apple ID password if you'd like more information.
    If necessary:
    Forgotten Security Questions/Answers
    You need to contact Apple by:
    1 - Use the Express lane and start here:
    https://expresslane.apple.com
    then click More Products and Services>Apple ID>Other Apple ID Topics>Forgotten Apple ID security questions.
    or
    Apple - Support -form iTunes Store - Contact Us
    2 - Call Apple in your country by getting the number from here:
    http://support.apple.com/kb/HE57
    or           
    Apple ID: Contacting Apple for help with Apple ID account security
    3 - Use your rescue email address if you set one up
    Rescue email address and how to reset Apple ID security questions
    For general  information see:
    Apple ID: All about Apple ID security questions
    If you have not uses any of the $10 you redeemed to the new account, you can likely get that refunded by contacting iTunes
    Contact iTunes

  • Export selected item as PNG with Alpha

    Hello.
    I'm building game graphics in Illustrator.  I have thousands of individual sprites to export, up until now I've been copying and pasting in Photoshop and exporting through there, but that is tedious and slow.  Inkscape has an option to export the selected object only as a PNG with alpha, pixel dimensions are equal to the current selection size.  Perfect.  But that means using Inkscape and quite frankly it's horrible to use.
    I'm sure this must be possible, but for the life of me I can't find a working method.  I found Windows scripts for CS3, but nothing for CS5 on Mac.
    Can anyone help?

    Should not be too hard to adapt the script for Mac, assuming it is JavaScript, not VBScript. If you can point to the source, someone might be able to fix it for you (also post in the scripting sub-forum). Other than that you can of course always make use of the slice tool and fit the slices to the objects, then export the slices.
    Mylenium

  • OUTPUTING AS PNG WITH ALPHA??

    Hello to everyone...
    I hope someone can give helping hand...
    I'm working on a project where I need to output single frame files as PNG's with Alpha channel.  So far, I've used the "save frame as" function and then selected "file".  In the Render Queue under output module, I selected PNG sequence.  In the output settings under video output, I selected RGB + Alpha and Millions of colors +   I also selected "interlaced" under format options as the files are for web.  But when I open the single frame in Photoshop, the ALPHA channel is not there.
    Can someone tell me what I'm doing wrong?  I know that PNG's can be saved with an Alpha I just can't seem to make it work.
    Please help!
    Thanks
    Bgub.

    Define work area if rendering in portions, then go  "add to render queue" instead of "save frame" and modify output module to PNG Sequence RGB+Alpha, Millions of Colors+
    PNG+Alpha still work here for me in CS3. Maybe Adobe removed support for outputting PNG Still Image Seuquence with Tranparency. I would not wonder because they often toss functionalities, only god knows why they're doing it.
    Otherwise use TIFF Sequence

  • PNG with Alpha into FCP..

    Hi.
    I have a 15 minute movie that I've edited in FCP7.
    The transitions and text are animated on After Effects, exported in 1920x1080 Quicktime PNG codec, because of the need of an alpha channel for transparency.
    I import it into a timeline that is 1920x1080 Apple ProRes 422 configured, because the timeline is mostly from 7D and 5D footage converted from MPEG Streamclip.
    The result I get is that the text and lines from the PNG-codec .mov have some "cracks", not near as smooth as in the PNG compression. The example is below:
    PNG codec mov exported from AE:
    http://oi42.tinypic.com/65ww1h.jpg
    Inside FCP and FCP-exported movie:
    http://oi43.tinypic.com/290ykqr.jpg
    How can I get Final Cut to export or interpret the footage correctly?
    Or should I export it differently from AE?
    Thanks!

    Use your editing application to change the field order to None.  It's  easy to do in the FCP Browser.  Just look for the field order column and change it.  Done.

  • Automator or Applescript using png files with alpha channel

    I have hundred of png files with alpha channel.
    I want to suppress alpha channel.
    How can i do it using Automator or Applescript ?
    Thank you very much.

    You can use the free command line image processing tool ImageMagick in your Applescripts or Automator workflows, as well as from a Terminal shell.
    You can download ImageMagick from http://www.imagemagick.org, but Cactuslab has simplified installation by putting together an installer package. It’s available at  http://cactuslab.com/imagemagick/. Download the package and double-click on it. Follow the instructions to install. It will install ImageMagick into /opt/ImageMagick and add it to your $PATH by creating a file in /etc/paths.d/. Restart your computer for the changes to take effect.
    The two ImageMagick commands we’re concerned with are “convert” and “mogrify”. Convert is more efficient for multiple and piped operations on the same image file, and mogrify is more efficient for batch processing. Generally speaking, convert will output a file separate from the input file. Unless a path is specified, mogrify will overwrite the input file with the output file. An important distinction.
    You can perform various operations on the alpha channel using arguments after either the convert or mogrify command. Two of the available arguments are:
    -alpha off - Disables the image's transparency channel. Does not delete or change the existing data, just turns off the use of that data.
    -alpha remove - Composite the image over the background color.
    Also of use are the -flatten and -background options:
    -flatten - overlay all the image layers into a final image and may be used to underlay an opaque color to remove transparency from an image.
    -background - sets the background color.
    Start off using the convert command with a single image to see the effect and adjust to your liking. Once you’ve achieved the desired outcome, then use the mogrify command to batch process the chosen images.
    Before getting into how to use Automator or Applescript in your workflow, use Terminal and the command line to see the effect on a single image. Copy one image to your ~/Desktop. In Terminal change the directory to ~/Desktop by typing the following command and pressing the Enter key:
    cd ~/Desktop
    Then choose the option you are looking for, -alpha remove for instance, type the following command and press the Enter key:
    convert input-photo.png -alpha remove output-photo.png
    You can check the alpha channel (transparency) and background in the Preview app, go View > Show Image Background from the menu bar.
    Once you’re ready to batch proces, place all the photos you want to convert with the same command into one folder. Copy the folder to your ~/Desktop. Let’s assume you’ve labeled the folder “InPhotos”. It’s prudent to manipulate copies in case something goes amiss. In that event you can copy the folder with the originals again and start over. Create a new empty folder on your ~/Desktop and call it “OutPhotos”. Let’s also assume your home directory is called “Me”. The following command will process the photos from the InPhotos folder and put them in the OutPhotos folder:
    mogrify -alpha remove -path /Users/me/Desktop/OutPhotos/ /Users/me/Desktop/InPhotos/*png
    According to Apple Technical Note TN2065:
    "when you use just a command name instead of a complete path, the shell uses a list of directories (known as your PATH) to try and find the complete path to the command. For security and portability reasons, do shell script ignores the configuration files that an interactive shell would read"
    So, you need to use the full path to to ImageMagick commands, unlike in the shell where you can just use the command name.
    To batch process using Automator, use the “Run Shell Script” action (note: retain the single space at the beginning of the last line):
    /opt/ImageMagick/bin/mogrify \
    -alpha remove \
    -path /Users/Me/Desktop/OutPhotos/ \
    /Users/Me/Desktop/InPhotos/*png
    To batch process using Script Editor (Applescript), use the “do shell script” command:
    do shell script "/opt/ImageMagick/bin/mogrify -alpha remove -path /Users/pd/Desktop/OutPhotos/ /Users/pd/Desktop/InPhotos/*png"
    Further info on ImageMagick:
    http://www.imagemagick.org/script/command-line-options.php#alpha
    http://www.imagemagick.org/Usage/masking/#remove
    http://www.imagemagick.org/index.php
    http://www.imagemagick.org/script/command-line-tools.php
    http://www.imagemagick.org/script/command-line-options.php
    Examples:
    The original PNG image:
    -alpha off:
    -alpha remove:
    -background black -flatten:
    -background blue -flatten:
    -channel alpha -evaluate Divide 2:
    -channel alpha -evaluate Divide 2 -background black -flatten:

  • Export PNG images with alpha channel from flash

    Hi,
    I have this FLA with animation and when played, the animation has alpha channel. I can’t understand why when I look in the library I see the frames without the alpha channel and also when I try to export/extract the image again the image don’t have alpha channel.
    How is it that in flash this image has alpha channel and how to get it out like that into PNG?
    Here is the link to download the FLA:
    http://download759.mediafire.com/nb749r29220g/e0636ab0ru6ouoa/Untitled-1.fla

    "when played, the animation has alpha channel"
    how are you playing the animation? control/enter in Flash, Publishing to a Web page or what?
    How can you tell that the animation has the alpha channel? What exactly are you seeing?
    What is the aniimation? a series of images, one image moving? Are teweens imvolved?
    " when I try to export/extract the image again the image don’t have alpha channel"
    How are you exporting the image? is it a single image? or a series of frames that makes up an animation?
    What was the file format of the original image? you brought that image into Flash and animated it? Now you want to export as a .png with transparency?
    Have you ever tried to export a  simple .png before so that you see and understand the dialog box that pops up during export? are you chosing "24 bit with alpha channel" in the "Colors" choice?
    For those of us who may not want to download your file, please provide a more detailed describtion of everything related to this question.
    Best wishes,
    Adninjastrator

  • My iPhone 4S will not play music out loud. I can't turn sound up or down, it doesn't even give me the option.  I think that it thinks its docked, I've tried to blow air in it, I've tried compressed air with no luck.

    My iPhone 4S will not play music out loud. I can't turn sound up or down, it doesn't even give me the option.  I think that it thinks its docked, I've tried to blow air in it, I've tried compressed air with no luck.

    Clean iPhone charging port with clean dry toothbrush. See if fixed. If not, and if there is Warranty or AppleCare make Genius reservation and take to Apple for resolution. If no coverage, clean again, very well with toothbrush and small amount of Isopropyl Alcohol.

  • I had an iPhone 4 and recently upgraded to iphone5 now iCloud will not back up new phone.  Under iCloud it shows 2 iPhones and my iPad. Is it trying to write new phone over the old one?  What should I do?  I a, afraid I might lose everything messing with

    I had an iPhone 4 and recently upgraded to iphone5 now iCloud will not back up new phone.  Under iCloud it shows 2 iPhones and my iPad. Is it trying to write new phone over the old one?  What should I do?  I am afraid I might lose everything messing with

    I see.  If you go to Settings>General>About>Name, that is the current name of your phone.  The backup bearing that name should be the more recent one, and therefore the one you want to keep.  I would delete the other one (presumably the one set up by Best Buy under your real name, assuming you changed it later), then see if that gives you enough space to back up again.
    If it still reporting insufficient storage, use this guide: http://support.apple.com/kb/HT4847 to try to determine what's taking up all your room.  In them meantime, you can perform a manual backup on your computer so your have a current one while you're troubleshooting this.  To do so, connect your phone to iTunes, then right-click on the name of your phone on the left side and select Back Up.

Maybe you are looking for

  • Upload a dvd from my computer to my i pod

    how can i upload a dvd from my computer to my i pod

  • My new  iPod 7th gen is syncing but no sound

    I have just received my iPod 7th gen. It is fully charged and set up.  I have synced my music files to it. When i play a song no sound comes through but on the iPod it shows as playing.  Is this a fault with the ipod?  The earphones work fine as i ha

  • No blank preview pics in iphoto

    Hello, i have the problem that some pictures have no preview in iphoto. This happends only when i do changes like turn the photo in iphoto. I get only a blank preview image but the original photos are ok. What can i do ? Regards Jens

  • Probook 6550b does not recognize ssd on reboot

    Hi, I've installed an Intel 530 SSD 240GB into my Probook 6550b (replacing a crucial 128GB, which worked fine).   The computer boots ok on the SSD from a cold start, but does not recognise the SSD on restart.  Also SSD is hanging and slow.  I have te

  • ITunes message says I can't watch rented movies!

    I have Mac OS X 10.5.8, iTunes 10.6.3, Quicktime 7.5.5. iTunes message says I can't watch rented movies & that I need another QT version that I couldn't remember. What should I do? Note, in System Profiler, I have QT 7.5.5 in Apps and in Frameworks.