Skip to content

Instantly share code, notes, and snippets.

@dgodfrey206
Last active August 29, 2015 14:21
Show Gist options
  • Save dgodfrey206/7a7b467a090adbae594b to your computer and use it in GitHub Desktop.
Save dgodfrey206/7a7b467a090adbae594b to your computer and use it in GitHub Desktop.
Converts ARGB to RGBA
#include <iostream>
#include <bitset>
#include <vector>
#include <algorithm>
template<class T>
T Rotate(T i) {
return (i << 1) | (i >> sizeof(i));
//return ((i & (1 << (sizeof(T) - 1)) >> sizeof(T)) | (i << 1));
}
void ToRGBA(std::vector<unsigned char>& vec) {
std::transform(begin(vec), end(vec), begin(vec), Rotate<unsigned char>);
}
int main()
{
std::vector<unsigned char> vec;
for (int i = 0; i < 5; ++i) {
vec.push_back(i);
std::bitset<10> b(i);
std::cout << "vec[i] = " << b << '\n';
}
std::cout << '\n';
ToRGBA(vec);
for (int i = 0; i < 5; ++i) {
std::bitset<10> b(vec[i]);
std::cout << "vec[i] = " << b << '\n';
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment