jjzjj

c++ - 将 PNG(包括 Alpha)与原始 ARGB 缓冲区混合的 C/C++ 库

我有一个带有编码alphachannel的PNG,我想将其与内存中交错存储的原始ARGB图像混合。PNG与图像缓冲区的分辨率不同,需要相应地调整大小(最好使用插值)。虽然我明白手动执行此操作并不是特别困难(一旦PNG图像被加载到适当的结构中),但我希望找到一个好的开源图像处理库来为我完成这项工作。我看过一些,包括:libGDlibPNG打开简历ImageMagickCxImage英特尔集成性能原语(IPP)但似乎没有一个能够处理加载PNG、调整PNG图像大小、将alpha混合到图像数据中以及处理ARGB格式(与RGBA相对)的所有要求。性能是一个问题,因此减少对图像数据的传递将是有益的

video - iPhone RGBA 到 ARGB

我正在使用glReadPixels抓取我的opengl场景的屏幕截图,然后在IOS4上使用AVAssetWriter将它们变成视频。我的问题是我需要将alphachannel传递给只接受kCVPixelFormatType_32ARGB和glReadPixels检索RGBA的视频。所以基本上我需要一种方法将我的RGBA转换为ARGB,换句话说,将alpha字节放在第一位。intdepth=4;unsignedcharbuffer[width*height*depth];glReadPixels(0,0,width,height,GL_RGBA,GL_UNSIGNED_BYTE,&buf

ios - 将 RGBA 转换为 ARGB(glReadPixels -> AVAssetWriter)

我想借助AVAssetWriter将使用OpenGL渲染的图像记录到电影文件中。问题出现了,从OpenGL帧缓冲区访问像素的唯一方法是使用glReadPixels,它仅支持iOS上的RGBA像素格式。但是AVAssetWriter不支持这种格式。在这里我可以使用ARGB或BGRA。由于可以忽略alpha值,因此我得出结论,将RGBA转换为ARGB的最快方法是为glReadPixels提供移动一个字节的缓冲区:UInt8*buffer=malloc(width*height*4+1);glReadPixels(0,0,width,height,GL_RGBA,GL_UNSIGNED_BY

android - 动态壁纸渐变条纹 : is it possible to use ARGB_8888 or dithering to fix?

我正在创建一个动态壁纸,我正在Canvas上的每一个Runnable.run()调用颜色不断变化,我希望放一个渐变在顶部,但我正在创建的渐变是带状的可怕的。谷歌搜索了几天后,我想出了两个解决方案:将抖动设置为真将Canvas位图设置为ARGB_8888我试过在getWallpaper()访问器和Paint对象,但它没有帮助(我看不到任何抖动)所以我尝试更改Canvas位图但我不确定如何实际显示它//_canvasBmp=Bitmap.createBitmap(metrics.widthPixels,metrics.heightPixels,Bitmap.Config.ARGB_8888

Android - Bitmap.createScaledBitmap() 将 Config 设置为 ARGB_8888

这是我第一次遇到一个问题,尽管进行了彻底的搜索,但似乎还没有人问过。我在使用Bitmap.createScaledBitmap()时遇到问题,无论输入的配置如何,生成的缩放位图始终是ARGB_8888。在内存有限的情况下,这自然是个问题。InputStreamis;try{is=mAssets.open("test.png");BitmapFactory.Optionsopts=newBitmapFactory.Options();opts.inPreferredConfig=Config.ARGB_4444;BitmaporiginalBitmap=BitmapFactory.dec

android - 获取ARGB_8888 Android Bitmap中的原始数据

我正在尝试使用copyPixelsToBuffer和copyPixelsFromBuffer方法在Android上访问ARGB_8888格式的位图原始数据。但是,调用这些调用似乎总是将alphachannel应用于rgbchannel。我需要byte[]或类似格式的原始数据(通过JNI;是的,我知道Android2.2中的bitmap.h,但不能使用它)。这是一个示例://Create1x1Bitmapwithalphachannel,8bitsperchannelBitmapone=Bitmap.createBitmap(1,1,Bitmap.Config.ARGB_8888);on

android - 以编程方式将 ARGB 颜色应用于 TextView

我目前在我的java代码中使用类似:TextView.SetBackgroundColor(Color.WHITE);。我希望能够通过java向textview添加一些透明度...这很容易通过#AARRGGBB格式在XML中完成,但我还没有找到实现此目的的方法以编程方式。 最佳答案 TextView.SetBackgroundColor(Color.argb(a_int,r_int,g_int,b_int));或者:TextView.SetBackgroundColor(Color.parseColor("#AARRGGBB"));

ios - 将 BGRA 转换为 ARGB

我正在阅读thistutorial关于从iPhone相机获取像素数据。虽然运行和使用此代码没有问题,但我需要获取相机数据的输出(来自BGRA)并将其转换为ARGB,以便我可以将其与外部库一起使用。我该怎么做? 最佳答案 如果您使用的是iOS5.0,则可以使用Accelerate框架内的vImage使用如下代码(取自Apple的WebCoresourcecode)进行NEON优化的颜色组件交换:vImage_Buffersrc;src.height=height;src.width=width;src.rowBytes=srcByte

iphone - 如何在没有预乘 alpha 的情况下获得真正的 RGBA 或 ARGB 颜色值?

我正在使用CGBitmapContextCreate和kCGImageAlphaPremultipliedFirst选项创建位图上下文。我制作了一张5x5的测试图像,其中包含一些主要颜色(纯红色、绿色、蓝色、白色、黑色)、一些混合颜色(即紫色)以及一些alpha变化。每次alpha分量不为255时,颜色值都是错误的。我发现我可以在执行以下操作时重新计算颜色:almostCorrectRed=wrongRed*(255/alphaValue);almostCorrectGreen=wrongGreen*(255/alphaValue);almostCorrectBlue=wrongBlu

java - TYPE_INT_RGB 和 TYPE_INT_ARGB 格式

谁能为我解释一下java如何在TYPE_INT_RGB和TYPE_INT_ARGB中存储颜色?这些代码行是否可以正确计算红色、绿色和蓝色?intred=(RGB>>16)&255;intgreen=(RGB>>8)&255;intblue=(RGB)&255;那么TYPE_INT_ARGB呢?如何从TYPE_INT_ARGB中获取红色、绿色和蓝色? 最佳答案 TYPE_INT_ARGB将颜色表示为int(4字节),其中24-31位为alphachannel,16-23位为红色channel,8-15位为绿色channel,0-7为蓝