- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我试图在位图上实现水反射效果。正如我看到一些名为水反射的应用程序。我知道如何进行图像的反射,但图像上的波浪让我对如何完成感到困惑。
例如看这张图片
我做了很多关于位图操作的应用程序,但这很难实现。所以关于从哪里开始的任何想法。只是一个开始的想法可能会有所帮助。
最佳答案
对于任何需要的人,我尝试了一些简单的技巧来获得与水反射效果一样接近的效果。它不是很好,但我觉得还不错。
我用了两种方法
位图反射法(给位图作为参数)
public static Bitmap Reflection(Bitmap imageBitmap) {
int width = imageBitmap.getWidth();
int height = imageBitmap.getHeight();
Matrix matrix = new Matrix();
matrix.preScale(1, -1);
Bitmap reflectionImage = Bitmap.createBitmap(imageBitmap, 0,
0, width, height , matrix, false);
Bitmap newbit=Bitmap.createScaledBitmap(reflectionImage, reflectionImage.getWidth()/8, reflectionImage.getHeight()/8, true);
Bitmap newbit1=Bitmap.createScaledBitmap(newbit, newbit.getWidth()*8, newbit.getHeight()*8, true);
Bitmap scalednew=Bitmap.createScaledBitmap(newbit1, width, height-(height/4), true);
Bitmap newscaledone=overlay(scalednew);
reflectionImage=newscaledone;
Bitmap reflectedBitmap = Bitmap.createBitmap(width,
(height + height), Config.ARGB_8888);
Canvas canvas = new Canvas(reflectedBitmap);
canvas.drawBitmap(imageBitmap, 0, 0, null);
Paint defaultPaint = new Paint();
canvas.drawRect(0, height, width, height, defaultPaint);
canvas.drawBitmap(reflectionImage, 0, height , null);
Paint paint = new Paint();
paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
canvas.drawRect(0, height, width, reflectedBitmap.getHeight()
, paint);
return reflectedBitmap;
}
位图叠加法。我正在使用一些不透明度的波浪位图覆盖在反射图像上。让它看起来像水。
Bitmap wavebitmap=BitmapFactory.decodeResource(getResources(), R.drawable.waves1);
private static Bitmap overlay( Bitmap bmp2) {
Bitmap bmp1=WaterReflectionMainActivity.wavebitmap;
Bitmap bmp1new =Bitmap.createScaledBitmap(bmp1, bmp2.getWidth(), bmp2.getHeight(), true);
Bitmap bmOverlay = Bitmap.createBitmap(bmp1new.getWidth(), bmp1new.getHeight(), bmp1new.getConfig());
Canvas canvas = new Canvas(bmOverlay);
canvas.drawBitmap(bmp2, new Matrix(), null);
canvas.drawBitmap(bmp1new, new Matrix(), null);
return bmOverlay;
}
好吧,这是我的水效果版本,我知道这看起来很糟糕。因此,如果有人仍然获得更好的效果,请分享您的代码。谢谢
关于android - 位图上的水反射效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21721247/
我正在使用 suds 库从网络服务中获取产品列表。 这是一个示例代码: from suds.client import Client url = 'WSDLURL' client = Client(u
如何在我的 spriteKit 应用程序中获取少量液体? 我想要那种液体放在一个容器里,它会被密封在里面,但我希望它能够四处移动。 有没有更好的方法来实现这个?也许没有 SpriteKit 的选项?
我正在尝试使用 Soap API 将一些文件附加到 Jira。我有 python 2.6 并且 SOAPpy 不再工作,所以,我正在使用 suds。除了附件之外一切都很好...我不知道如何重写这段代码
请建议库在 python 中使用 soap。 现在,我正在尝试使用“suds”,我无法理解如何从服务器回复中获取 http header 代码示例: from suds.client import C
我正在使用 OpenGL 开发 3d 游戏,并希望将其带入幻想的方向。具体来说,我正在考虑拥有具有火、水、冰和闪电效果的魔法。我的问题是我不知道如何创建这些效果。有没有关于如何学习这样的东西的资源?
这是我多年来依赖这个网站后的第一个问题! 无论如何,我想完成类似这种效果的事情: http://www.flashmonkey.co.uk/html5/wave-physics/ 但在圆形路径上,而不
我正在尝试解决 SPOJ 中的以下问题: On a rectangular mesh comprising nm fields, nm cuboids were put, one cuboid on
我在 Django(1.3、python 2.7)中使用 Suds 时遇到一些问题。 当我在脚本中使用 suds 检索数据时,它可以工作;但是如果我将**完全相同的**代码放入 django View
我是 的新手WATIR 或 Selenium,但我试图在我的 WATIR 浏览器中添加一个 cookie,如下所示: browser = Watir::Browser.new :firefox
我想知道是否有可能在 Google map 或 Bing Mag 2D/3D map 上恢复地形类型(山脉、森林、水域、平原等...) 。为了根据玩家在现实世界中的位置生成 map !我认为可用 AP
我是一名优秀的程序员,十分优秀!