Yapmaya çalıştığım şey, pixmap'leri bir dokuya çizerek oyunum için bir arka plan görüntüsü oluşturmaktır. Şimdiye kadar bunu yapabilirim, ama şimdi X veya Y ekseninde çevrilmiş pixmap'leri dokuya çizmem gerekiyor. Ancak bunu yapacak bir şey bulamıyorum. Pixmap sınıfı bu işlevselliği sağlamıyor. Sonra bir dokuya çevrilmiş bir doku bölgesi çizebileceğimi düşündüm, ama şimdiye kadar bunu nasıl yapacağımı bulamadım. Bu yüzden böyle bir şeyi nasıl yapabileceğimi merak ettim, diğer java kütüphaneleriyle bir png görüntüsünü çevirmek ve sonra çevrilmiş görüntüden bir piksel haritası oluşturmak mümkün olabilir mi? pikselleri yineleme dışındalibgdx'te bir dokuya çizmek için bir piksoma nasıl çevrilir?
10
A
cevap
7
Ben de başka bir seçenek görmüyorum:
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
İşte yeni pixmap oluşturulmasını gerektirmeyen bir çözüm. Bu kod, görüntünün karşıt taraflarındaki pikselleri değiştirmek yerine bir piksel haritası görüntüsünün köşelerini değiştirerek bir Pixmap'ı yatay ve dikey olarak çevirmek için de değiştirilebilir.
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);
}
İlgili konular
- 1. Bir grep ifadesi nasıl çevrilir?
- 2. Nasıl yuvarlatılmış bir dikdörtgen çizmek için C#
- 3. UIView'nin belirli bir alanının renkleri nasıl çevrilir?
- 4. bir yüzeye bir android.media.Image çizmek
- 5. iOS - Bir daire çizmek için CAShapeLayer
- 6. RDD.takeOrdered() için sipariş nasıl tersine çevrilir?
- 7. git: Bir klon yeni bir dalda nasıl çevrilir?
- 8. Delphi'de WebBrowser bileşeni üzerinden bir şey çizmek için nasıl kullanılır?
- 9. Bir haritayı çizmek için xlim ve ylim'i nasıl kullanırız?
- 10. nasıl bir tuval bağlamında kesikli çizgi çizmek için HTML bağlamda
- 11. Scala'da Stream-cons # :: nasıl çevrilir?
- 12. Java'da System.loadLibrary nasıl tersine çevrilir
- 13. Vardiya/sıfırlama delimcc'e nasıl çevrilir?
- 14. Bu parçacık nasıl Haskell'e çevrilir?
- 15. OpenGL ES dokuya işlenir, ardından doku çizilir
- 16. Bir regresyon eğrisini çizmek çalışıyordu
- 17. Sed çıkışı nasıl tersine çevrilir?
- 18. NSString değeri @ "3.45" nasıl çevrilir?
- 19. Nasıl matplotlib Axes örneği çizmek için?
- 20. Django şablonunda bir ad mutlak URL'ye nasıl ters çevrilir?
- 21. Özel bir Görünüm üzerinde bir çizgi çizmek için bir PathShape ile ShapeDrawable'ı nasıl kullanmanız gerekir?
- 22. Bir dikdörtgenin içine dize çizmek için dinamik yazı tipi boyutu
- 23. "Sıkı" çizgi çizmek için yaygın bir teknik var mı?
- 24. Bir GLSL parçalı gölgelendiricide, belirli bir mipmap düzeyinde dokuya nasıl erişilir?
- 25. Tablo çizmek için jQuery'yi kullanın
- 26. CIImage'ın OpenGL ES 2.0 dokuya dönüştürülmesi iOS'ta
- 27. Bir dairenin içindeki noktaları çizmek için X, Y koordinatlarını kullanın
- 28. Android - İki coğrafi nokta arasındaki bir rotayı çizmek için
- 29. Gantt diyagramları çizmek için herhangi bir LaTeX paketi var mı?
- 30. Python: Bir Susam veritabanını grafiğini çizmek için RDFLIB kullanma
Orijinal Pixmap –
Thx! Btw, Y eksenini çevirmek istiyorsanız, sadece 'flipped.drawPixel (x, y, src.getPixel (x, height - y - 1)); – Sawny
Sadece bir pixmap'i 90 derece döndürmeniz gerekiyorsa: Fikrinizden ilham almak için bir yöntem oluşturdum, bkz. Http://stackoverflow.com/a/34362685/2399024 – donfuxx