私がしようとしているのは、ピックスマップをテクスチャに描画することによってゲームの背景イメージを生成することです。今のところ私はそれを行うことができますが、X軸またはY軸にフリップされたピクスマップをテクスチャに描画する必要があります。しかし、私はそうする何かを見つけることができません。 pixmapクラスはその機能を提供しません。それでテクスチャにフリップされたテクスチャ領域を描くことができると考えましたが、これまでのところどのようにしているのかわかりませんでした。だから私はどうやってこのようなことをすることができるのだろうと思っていた。それは他のJavaライブラリとpng画像を反転し、その反転画像からpixmapを作成することができるだろうか?ピクセルを反復する以外libgdxのテクスチャに描画するピクスマップを反転する方法は?
10
A
答えて
7
私はまた、他のオプションが表示されない:
public Pixmap flipPixmap(Pixmap src) {
final int width = src.getWidth();
final int height = src.getHeight();
Pixmap flipped = new Pixmap(width, height, src.getFormat());
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
flipped.drawPixel(x, y, src.getPixel(width - x - 1, y));
}
}
return flipped;
}
0
は、ここで新しいピックスマップの作成を必要としないソリューションです。このコードは、画像の反対側のピクセルを交換する代わりに、ピクスマップ画像のコーナーを交換することによって、Pixmapを水平および垂直に反転するように変更することもできます。
public static void flipPixmap(Pixmap p){
int w = p.getWidth();
int h = p.getHeight();
int hold;
//change blending to 'none' so that alpha areas will not show
//previous orientation of image
p.setBlending(Pixmap.Blending.None);
for (int y = 0; y < h/2; y++) {
for (int x = 0; x < w/2; x++) {
//get color of current pixel
hold = p.getPixel(x,y);
//draw color of pixel from opposite side of pixmap to current position
p.drawPixel(x,y, p.getPixel(w-x-1, y));
//draw saved color to other side of pixmap
p.drawPixel(w-x-1,y, hold);
//repeat for height/width inverted pixels
hold = p.getPixel(x, h-y-1);
p.drawPixel(x,h-y-1, p.getPixel(w-x-1,h-y-1));
p.drawPixel(w-x-1,h-y-1, hold);
}
}
//set blending back to default
p.setBlending(Pixmap.Blending.SourceOver);
}
関連する問題
- 1. コンテキストで描画するときに座標を反転する方法は?
- 2. libgdxのステージでbitmapfontを描画する方法は?
- 3. アンドロイドで画像を反転/反転/カールする方法
- 4. beginNativePainting()内でテクスチャを反転させる方法は?
- 5. テクスチャをスクリーンバッファに描画せずにテクスチャをコピーする(opengl)
- 6. Cocos2d-iphoneで画像にテクスチャを追加する方法(その上に描画する方法)
- 7. テクスチャ付きクォードを描画するOpenGL
- 8. OpenCL - 描画するOpenGLテクスチャのクラッシュ
- 9. X軸またはY軸に描画可能なものを反転する
- 10. Macで画面の色をプログラムで反転する方法
- 11. LibGDXのテクスチャでビデオをレンダリングする
- 12. SQLのランダムビットを反転する方法
- 13. OPEN GL Android - ビットマップオブジェクトを描画可能テクスチャに変換する方法
- 14. OpenGLテクスチャを反転する必要がありますか?
- 15. glVertex2f()で描画された図面を反転しますか?
- 16. Cでスプライトを反転する方法#
- 17. IMPACTJSでアニメーションを反転する方法
- 18. パスワードフィールドを描画する方法Ember.TextFieldを描画する方法ですか?
- 19. libgdxでグリッド線を描く方法
- 20. Android:imageViewの描画可能部分のみを回転する方法は?
- 21. 画像を水平方向に反転
- 22. cocos2dで正方形の画像を回転または反転する
- 23. C#で高品質の回転文字列を描画する方法は?
- 24. アンチエイリアスで回転ビットマップを描画する
- 25. フィールドを再描画する方法は?
- 26. メッセージシーケンスチャートを描画する方法は?
- 27. java.awt.Windowを再描画する方法は?
- 28. JMSキューを描画する方法は?
- 29. 画像を描画する方法
- 30. Flexで画像を垂直方向に反転する
元のPixmapを廃棄することを忘れないでください。 –
Thx! Btwでは、代わりに 'flipped.drawPixel(x、y、src.getPixel(x、height - y - 1));'を実行するだけで、Y軸を反転したい場合は '。 – Sawny
ピクスマップを90度回転させる必要がある場合に備えて、あなたのアイデアからインスピレーションを得た方法を作成しました。http://stackoverflow.com/a/34362685/2399024 – donfuxx