void ofPixels_<PixelType>::swapRgb(){ switch(pixelFormat){ case OF_PIXELS_RGB: case OF_PIXELS_BGR: case OF_PIXELS_RGBA: case OF_PIXELS_BGRA:{ Pixels pixels = getPixelsIter(); Pixel _end = pixels.end(); for(Pixel pixel=pixels.begin();pixel!=_end;pixel++){ std::swap(pixel[0],pixel[2]); } } break; default: ofLogWarning("ofPixels") << "rgb swap not supported for this pixel format"; break; } switch(pixelFormat){ case OF_PIXELS_RGB: pixelFormat = OF_PIXELS_BGR; break; case OF_PIXELS_BGR: pixelFormat = OF_PIXELS_RGB; break; case OF_PIXELS_RGBA: pixelFormat = OF_PIXELS_BGRA; break; case OF_PIXELS_BGRA: pixelFormat = OF_PIXELS_RGBA; break; default: break; } }
void ofPixels_<PixelType>::set(int channel,PixelType val){ switch(pixelFormat){ case OF_PIXELS_RGB: case OF_PIXELS_BGR: case OF_PIXELS_RGBA: case OF_PIXELS_BGRA: case OF_PIXELS_GRAY: case OF_PIXELS_GRAY_ALPHA:{ Pixels pixels = getPixelsIter(); Pixel _end = pixels.end(); for(Pixel pixel=pixels.begin();pixel!=_end;pixel++){ pixel[channel] = val; } } break; case OF_PIXELS_RGB565: case OF_PIXELS_NV12: case OF_PIXELS_NV21: case OF_PIXELS_YV12: case OF_PIXELS_I420: case OF_PIXELS_YUY2: case OF_PIXELS_UYVY: case OF_PIXELS_Y: case OF_PIXELS_U: case OF_PIXELS_V: case OF_PIXELS_UV: case OF_PIXELS_VU: case OF_PIXELS_UNKNOWN: default: ofLogWarning() << "setting channels not supported for " << ofToString(pixelFormat) << " format"; break; } }
void ofPixels_<PixelType>::swapRgb(){ switch(pixelFormat){ case OF_PIXELS_RGB: case OF_PIXELS_BGR: case OF_PIXELS_RGBA: case OF_PIXELS_BGRA:{ for(auto pixel: getPixelsIter()){ std::swap(pixel[0],pixel[2]); } } break; default: ofLogWarning("ofPixels") << "rgb swap not supported for this pixel format"; break; } switch(pixelFormat){ case OF_PIXELS_RGB: pixelFormat = OF_PIXELS_BGR; break; case OF_PIXELS_BGR: pixelFormat = OF_PIXELS_RGB; break; case OF_PIXELS_RGBA: pixelFormat = OF_PIXELS_BGRA; break; case OF_PIXELS_BGRA: pixelFormat = OF_PIXELS_RGBA; break; default: break; } }
void ofPixels_<PixelType>::set(int channel,PixelType val){ switch(pixelFormat){ case OF_PIXELS_RGB: case OF_PIXELS_BGR: case OF_PIXELS_RGBA: case OF_PIXELS_BGRA: case OF_PIXELS_GRAY: case OF_PIXELS_GRAY_ALPHA: case OF_PIXELS_UV: case OF_PIXELS_VU:{ for(auto pixel: getPixelsIter()){ pixel[channel] = val; } } break; case OF_PIXELS_RGB565: case OF_PIXELS_NV12: case OF_PIXELS_NV21: case OF_PIXELS_YV12: case OF_PIXELS_I420: case OF_PIXELS_YUY2: case OF_PIXELS_UYVY: case OF_PIXELS_Y: case OF_PIXELS_U: case OF_PIXELS_V: case OF_PIXELS_UNKNOWN: default: ofLogWarning() << "setting channels not supported for " << ofToString(pixelFormat) << " format"; break; } }
void ofPixels_<PixelType>::setChannel(int channel, const ofPixels_<PixelType> channelPixels){ int channels = channelsFromPixelFormat(pixelFormat); if(channels==0) return; channel = ofClamp(channel,0,channels-1); const_iterator channelPixel = channelPixels.begin(); for(auto p: getPixelsIter()){ p[channel] = *channelPixel++; } }
void ofPixels_<PixelType>::setColor(const ofColor_<PixelType>& color) { switch(pixelFormat){ case OF_PIXELS_RGB:{ Pixels pixels = getPixelsIter(); Pixel _end = pixels.end(); for(Pixel pixel=pixels.begin();pixel!=_end;pixel++){ pixel[0] = color.r; pixel[1] = color.g; pixel[2] = color.b; } } break; case OF_PIXELS_BGR:{ Pixels pixels = getPixelsIter(); Pixel _end = pixels.end(); for(Pixel pixel=pixels.begin();pixel!=_end;pixel++){ pixel[0] = color.b; pixel[1] = color.g; pixel[2] = color.r; } } break; case OF_PIXELS_RGBA:{ Pixels pixels = getPixelsIter(); Pixel _end = pixels.end(); for(Pixel pixel=pixels.begin();pixel!=_end;pixel++){ pixel[0] = color.r; pixel[1] = color.g; pixel[2] = color.b; pixel[3] = color.a; } } break; case OF_PIXELS_BGRA:{ Pixels pixels = getPixelsIter(); Pixel _end = pixels.end(); for(Pixel pixel=pixels.begin();pixel!=_end;pixel++){ pixel[0] = color.b; pixel[1] = color.g; pixel[2] = color.r; pixel[3] = color.a; } } break; case OF_PIXELS_GRAY:{ PixelType b = color.getBrightness(); for(iterator i=begin();i!=end();++i){ *i = b; } } break; case OF_PIXELS_GRAY_ALPHA:{ PixelType b = color.getBrightness(); Pixels pixels = getPixelsIter(); Pixel _end = pixels.end(); for(Pixel pixel=pixels.begin();pixel!=_end;pixel++){ pixel[0] = b; pixel[1] = color.a; } } break; case OF_PIXELS_RGB565: case OF_PIXELS_NV12: case OF_PIXELS_NV21: case OF_PIXELS_YV12: case OF_PIXELS_I420: case OF_PIXELS_YUY2: case OF_PIXELS_UYVY: case OF_PIXELS_Y: case OF_PIXELS_U: case OF_PIXELS_V: case OF_PIXELS_UV: case OF_PIXELS_VU: case OF_PIXELS_UNKNOWN: default: ofLogWarning("ofPixels") << "setting color not supported yet for " << ofToString(pixelFormat) << " format"; break; } }