/********************************************************************** Audacity: A Digital Audio Editor ImageManipulation.h Dominic Mazzoni **********************************************************************/ #include #include #include "Theme.h" class wxImage; // This looks at the first pixel in the image, and shifts // the entire image by the vector difference between that // pixel and the dstColour. For better control, use // ChangeImageColour(wxImage, wxColour*, wxColour*) below wxImage *ChangeImageColour(wxImage * srcImage, wxColour & dstColour); // This function takes a source image, which it assumes to // be grayscale, and smoothly changes the overall color // to the specified color, and returns the result as a // new image. This works well for grayscale 3D images. // Audacity uses this routines to make the buttons // (skip-start, play, stop, record, skip-end) adapt to // the color scheme of the user. wxImage *ChangeImageColour(wxImage * srcImage, wxColour & srcColour, wxColour & dstColour); // Takes a background image, foreground image, and mask // (i.e. the alpha channel for the foreground), and // returns an new image where the foreground has been // overlaid onto the background using alpha-blending, // at location (xoff, yoff). wxImage *OverlayImage(wxImage * background, wxImage * foreground, wxImage * mask, int xoff, int yoff); // Same idea, but this time the mask is an alpha channel in // the foreground bitmap, and it's all retrieved from Themes. wxImage *OverlayImage(teBmps eBack, teBmps eForeground, int xoff, int yoff); // Creates an image with a solid background color wxImage *CreateBackground(int width, int height, wxColour colour); // Creates an image with the Mac OS X Aqua stripes, to be used // as a background wxImage *CreateAquaBackground(int width, int height, int offset); // Uses color on all OS except Mac, uses Aqua wxImage *CreateSysBackground(int width, int height, int offset, wxColour colour); // Pastes one image into another at specified location. void PasteSubImage( wxImage * pDest, wxImage * pSrc, int x, int y ); // Gets a rectangle from within anothe rimage, INCLUDING the alpha channel wxImage GetSubImageWithAlpha( const wxImage & Src, const wxRect &rect ); // Indentation settings for Vim and Emacs and unique identifier for Arch, a // version control system. Please do not modify past this point. // // Local Variables: // c-basic-offset: 3 // indent-tabs-mode: nil // End: // // vim: et sts=3 sw=3 // arch-tag: ed935217-c636-4196-8af8-526e5a831841