- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要让用户在屏幕上四处移动图像并调整其大小。
那部分我已经完成了。
我无法弄清楚的部分是如何在拍照时将可移动/可调整大小的图像卡住在照片图像上,而不是将两者合并在一起以制作 1 个位图。
我真的没有任何代码“fragment ”可以发布。我只是希望有些人以前可能有过这方面的经验,并且可能愿意阐明一些问题。
编辑。我知道当我拍照时图像已经卡住在屏幕上。在那种情况下,我会在 Canvas 上捕获项目位置。我需要做的是把我已经画过东西的 Canvas 以某种方式叠加到我也指定了照片的另一个 Canvas 上。
编辑 #2
好的女士们,先生们。我想到了。这是为相机制作叠加层的代码(如 mmeyer 所述。)
Camera.PictureCallback mPictureCallback = new Camera.PictureCallback() {
public void onPictureTaken(byte[] imageData, Camera c) {
Context ct = new Context;
RelativeLayout relativeview = new RelativeLayout(ct);
if (imageData != null) {
Context ct = HagsCamera.this;
new Intent(ct, PreviewandSend.class);
Bitmap photo = BitmapFactory.decodeByteArray(imageData, 0, imageData.length);
int picwidth= (photo.getWidth()/2);
int picheight = (photo.getHeight()/2);
Bitmap photocopy = Bitmap.createScaledBitmap(photo, picwidth, picheight, false);
Canvas c2 = crv.canvastoreturn;
c2.setBitmap(photocopy);
//photo.recycle();
ImageView newImage = new ImageView(ct);
relativeview.addView(newImage);
relativeview.draw(c2);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
photo.getWidth()/2, photo.getHeight()/2);
relativeview.setLayoutParams(lp);
祝大家好运。我希望这有助于避免很多麻烦。
简而言之:制作图片的位图。
为你的叠加层制作一个 Canvas ,然后把你的东西扔在那里
获取叠加层 Canvas 的副本
.setBitmap() Canvas 并将其设置为您的照片位图。
创建一个 RelativeLayout 并向其添加一个新的 ImageView。
在 ImageView 上绘制 Canvas 。
然后找出 RelativeLayout 的布局参数。
现在我考虑了一下,也许您可以将顶层 Canvas 设置为照片的位图...然后保存它...您可以自己测试。
最佳答案
我过去做过一些事情,在表面 View 上有一个叠加 View ,该 View 包含相机预览。
当用户想要捕捉图片时,我从 Camera.PreviewCallback.onPreviewFrame() 获取下一个预览帧,然后将其从 YUV 转换为位图。
然后我根据该位图获取一个 Canvas ,并将该 Canvas 传递给作为我的叠加 View 的自定义 View 类的 Draw() 方法,它会将它在屏幕上绘制的任何内容绘制到我的新 Canvas 上!然后我可以获取位图并将其保存为 jpg/png 到 SD。
请注意,在该自定义 View 类中,它必须处理缩放,因为当被要求在屏幕上绘制时它获得的 Canvas 与被要求在 Canvas 上绘制时获得的 Canvas 大小不同预览框。
请注意此处的预览大小和内存不足错误,因为许多手机的默认预览帧大小都非常大,并且使用 Canvas 绘制位图会快速消耗内存。了解如何使用 Bitmap.recycle() 以及如何监控 native 堆以解决这些问题。
希望对您有所帮助。
在阅读后续评论和您遇到的黑色/空白图像问题后,我决定发布一些伪代码来展示我是如何做到这一点的...
// decode the camera data into an immutable bitmap
Bitmap raw = CameraHelper.decodeYUV(frameInfo.frameData, frameInfo.frameSize.x, frameInfo.frameSize.y);
frameInfo.frameData = null; // allow large bytearry to to get gc'd
Bitmap cameraPic = raw.copy(Bitmap.Config.RGB_565, true); // make a mutable copy
Canvas c2 = (new Canvas(cameraPic)); // create a canvas from the camera pic
raw.recycle(); // we're done with raw bitmap now and can reclaim from native heap.
reticleOverlay.draw(c2); // reticle overlay is a class that implements View
String filename = acquireNextShotFilename()); // get a filename to write to SD
FileOutputStream fileoutputStream;
try {
fileoutputStream = new FileOutputStream(filename);
} catch (FileNotFoundException e) {
MyLogger.e("Couldnt open fileoutputstream: ", e);
throw e;
}
cameraPic.compress(CompressFormat.PNG, 100, fileoutputStream);
cameraPic.recycle();
try {
fileoutputStream.flush();
fileoutputStream.close();
} catch (IOException e) {
MyLogger.e("Error writing to file: ", e);
fileoutputStream.close();
}
关于java - 使用可调整大小/可重新定位的项目覆盖相机,而不是单击将图像合并在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6130572/
我必须从我的网站中删除()一些iem,然后将它们追加()回来,但是当我追加它们时,它们出现在不同的地方,而我希望它们完全显示在它们以前的同一个地方是。 有什么解决办法吗? 这是一个沙箱,请随意更新(注
一个。图片 (960x7)b. div(宽度:960,填充:10) 我想定位 (a),使其距顶部 50 像素,居中。我想将 (b) 放置在 (a) 的正下方,没有空格。 我的 CSS 如下: @cha
放置某物的正确方法是什么?我有一个在中心显示博客文章的 div。 "" rel="bookmark"> BY LOUIS MOORE ON " pubdate>
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭1
我已经成功地使用了 position:fixed 设置 CSS/CSS3 并且工作得很好! 我几天前看到了这个,想知道他们是如何实现向下滚动时发生的效果的,菜单栏在滚动前处于一个位置,然后转到顶部并自
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 7 年前。 Improv
接口定义 能够对于文字、段落乃至任何元素的精准定位 并做出增删改查,都是在开发一款富文本编辑器时一项最基本也是最重要的功能之一。让我们先来看看Slate中对于如何在文档树中定位元素是怎么定义的
例如,使用 WPF 在选项卡控件的最左上角定位三个 tabitem 和在最右上角定位一个 tabitem 的正确方法是什么? 我尝试通过更改边距将第四个 tabitem 向右移动,但这并没有产生好的结
我正在尝试使用 Javascript 创建一个跟随鼠标在页面上移动的东西。我希望它是米老鼠,我希望他的眼睛跟随鼠标移动他的眼球...这是我到目前为止的代码(从网络上的各个地方收集,因此归功于编写该部分
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 已关闭 9 年前。 Improve
我试图将两个按钮放置在左上角。但它们始终位于顶部中心。 我已经尝试过这个: jp = new JPanel(); jp.setLayout(new GridBagLayout()); GridBagC
我在使用 JQuery 向下滑动功能时遇到问题。我可以让它正常工作,但是我向下滑动的元素的位置会根据视口(viewport)的大小而变化。我想做的是将它与它滑动的元素联系起来。 This JSfidd
我正在尝试创建一个棋盘,并将其放置在屏幕中间,但到目前为止我无法将它直接放在中间。我不想将位置硬编码到屏幕上,因为我要处理不同的屏幕尺寸。 var winsize = cc.director.
我正在尝试从 mysql 中的 2 个字符串点之间提取数据,我的示例脚本是 'otherdata&p1=textneeded&otherdata' 我需要拉出“textneeded”位,“P1=”是起
如何在 JavaFX 中设置按钮的位置?我的代码: bZero = new Button(); bZero.setPrefSize(45, 20); mainPane.getChildren().ad
我有一个 iPhone 应用程序,我可以在其中显示一系列图像。当用户点击图像时,我需要将该图像带到第一个位置,表明它是所选图像。我可以通过子类化实现 uiscrollview 中的点击。但是我无法将
在下图中,它显示了一个image、textbox 和一个css menu image 我的 CSS 菜单非常完美。我终于按照我需要的方式得到了它。我的问题是我需要导航栏中央的文本框,然后我需要我的图像
我必须创建一个看起来像这样的 div id为2的div应该出现在图片的右下角,图片的大小不固定id=2的div应该应用什么css id =1 的 div 没有定义位置,所以使用默认值,图像也是
如何将我的文本和图像对齐在同一行? 每当我使用 padding 或 margins 时,它就会崩溃到我正在使用的圆形图像中。 #alignPhoto { padding-right: 50px;
简单的问题,如何定位具有整个页面引用的元素? 在我的例子中,我在标题中得到了一个 float 图像,然后是 2 组标题。当我使用时: text-align: center; 它使用图像宽度端和页面其余
我是一名优秀的程序员,十分优秀!