Unfortunately, there appears to be no way to using a built-in method on iOS to extract 32 bit RGBA data from a PNG file without losing the alpha channel reference. Therefore, some people have been using libpng to extract their OpenGL textures. However, all the examples have required the png file to be loaded from a file. Assuming these textures are imported over a network connection, they would have to be saved to files from NSData and then read. What is the best way to extract raw PNG data into raw OpenGL RGBA texture data?
Extract OpenGL raw RGB(A) texture data from png data stored in NSData using libpng on iOS
719 views Asked by Joshcodes At
1
There are 1 answers
Related Questions in IOS
- URLSession requesting JSON array from server not working
- Incorrect display of LinearGradientBrush in IOS
- Module not found when building flutter app for IOS
- How to share metadata of an audio url file to a WhatsApp conversation with friends
- Occasional crash at NSURLSessionDataTask dataTaskWithRequest:completionHandler:
- Expo Deep linking on iOS is not working (because of Google sign-in?)
- On iOS, the keyboard does not offer a 6-character SMS code
- Hi, there is an error happened when I build my flutter app, after I'm installing firebase packages occurs that error
- The copy/paste functionalities don't work only on iOS in the Flutter app
- Hide LiveActivityIntent Button from Shortcuts App
- While Running Github Actions Pipeline: No Signing Certificate "iOS Development" found: No "iOS Development" signing certificate matching team ID
- Actionable notification api call not working in background
- Accessibility : Full keyboard access with scroll view in swiftui
- There is a problem with the request entity - You are not allowed to create 'iOS' profile with App ID 'XXXX'
- I am getting "binding has not yet been initialized" error when trying to connect firebase with flutter
Related Questions in OBJECTIVE-C
- How to control the volume of an iPhone programmatically in objective-c
- Occasional crash at NSURLSessionDataTask dataTaskWithRequest:completionHandler:
- How to set value the descriptor of iOS BLE in Objective-C?
- Unexpected #selector() Behavior in Swift-Objective-C Interop?
- In what context can we use an unqualified #selector() expression in Swift?
- AVPictureInPictureController crashes during initialization
- How to use pow() in Objective-C?
- How to change the image on the MGSwipeButton in MGSwipeTableCell
- Using sort descriptors in Outline View
- Why is my Swift function not printing from inside the dataTask closure?
- Using UICollectionViewCell with IBOutlet
- Undefined symbol: _OBJC_CLASS_$_ only on simulator
- Why can't I receive a notification sent from Camera Extension(Swift) to an observer application (obj-c++)
- Behavior of __block modifier in objc
- Inserting subview into view where I've added subviews and sublayers
Related Questions in OPENGL-ES
- How can I use ARCore and OpenGL without Sceneform for making ar measurement app android?
- Unable to find GL_INT_2_10_10_10_REV define on Android GLES
- How to rotate model and view matrix with same angle?
- CameraX custom OpenGL Video Pipeline (`UseCase`/`VideoOutput`)
- How do I avoid leaking Graphics memory in OpenGL ES 2.0 in a background thread on Android?
- How to Create GPU SkImage in a Background Thread and Draw it on a Main SkSurface with OpenGL and Skia?
- glTexSubImage2D throws GL_INVALID_OPERATION in OpenGL ES 3.2 on Android NDK with FreeType
- What are the rules for the precision of casting operations in GLSL
- Why would a OpenGL ES 2.0 leak graphics memory on Android, but not iOS with the same code
- Create a VideoFrame from Canvas
- GLES30 Ray Picking gluUnProject
- OpenGL lighting works incorrectly on Android and WebAssembly
- WebGL: this extension has very low support on mobile devices
- OpenGL ES 3.0 - Textures black
- OpenGL-glGetUniformLocation failed
Related Questions in LIBPNG
- PygameGUI error loading libpng16-16.dll: the file cannot be accessed by the system
- How to compile libpng.so for Android
- Image doesn't get modified using PNG++
- Why does C code that uses libpng library, correctly read PNG information, but when png_read_row is called it crashes?
- Got wrong pictures while saving ZPixmap to png
- Can't install @quasar/icongenie Error: pngquant failed to build, make sure that libpng is installed
- When loading a single-color image, png_get_rows() returns a pointer to only 1 color
- libpng - RGB color space not permitted on grayscale PNG when using images created by Pillow
- decoding PDF: can I use PIL/Pillow to access the PNG predictor algorithm in order to reverse it for ingest to PIL?
- What does the pixel size refer to in libpng's manual?
- How to compile libpng with a non-system zlib
- Libpng Library - Indexed-images reading out of range indexes
- Mediapipe with GPU support for tensorflow ZLIB_VERNUM != PNG_ZLIB_VERNUM
- Rocky Linux 8 & 9: C++/Qt application crashes with "Failed to load /usr/share/icons/Adwaita/16x16/status/image-missing.png"
- How can I find the cause of "libpng warning: iCCP: known incorrect sRGB profile" messages in my Apache error.log file?
Related Questions in PREMULTIPLIED-ALPHA
- webgl2 with premultipliedAlpha:false and unwanted edges
- Issue with redrawing premultiplied alpha bitmap with Win32 GDI
- Merge a pre-multiplied pixel into a canvas with non-pre-multiplied pixels, controlling the intensity
- Render premultiplied data to transparent PNG file in Java
- Premultiplied alpha and multisampling in OpenGL
- How to mask an image with MetalPetal and output with transparency
- How to eliminate halo on blurred edge?
- Convert a CGImage to MTLTexture without premultiplication
- Why does not using premultiplied alpha have "significantly worse performance"?
- Disable premultiplied alpha on Bitmap.compress
- How to cause .NET to save a TIFF in PARGB32 format?
- PIL - Prevent premultiplied alpha channel
- math formula for color and alpha in webgl
- OpenGL ES 2.0 Alpha
- Dark halo around partial transparent parts of images in opengl
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Ended up writing a category which solves this problem using the customization capabilities of libpng. Posted a gist here: https://gist.github.com/joshcodes/5681512
Hopefully this helps someone else who needs to know how this is done. The essential part is creating a method
and using
as a custom read method.