我想写一个Android应用程序,基本上在另一个图像上的图像上叠加,然后我想保存图片与叠加作为jpg或png.基本上这将是我想要保存的整个视图.
示例代码非常有用.
编辑:
我尝试了你的建议,并在Starred Line获得一个空指针.
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.os.Bundle;
import android.os.Environment;
import android.widget.LinearLayout;
import android.widget.TextView;
public class EditPhoto extends Activity {
/** Called when the activity is first created. */
LinearLayout ll = null;
TextView tv = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv = (TextView) findViewById(R.id.text);
ll = (LinearLayout) findViewById(R.id.layout);
ll.setDrawingCacheEnabled(true);
Bitmap b = ll.getDrawingCache();
File sdCard = Environment.getExternalStorageDirectory();
File file = new File(sdCard, "image.jpg");
FileOutputStream …Run Code Online (Sandbox Code Playgroud) 是否可以用手机摄像头测量到物体的距离?
我的意思是,在我的应用程序中,我启动相机,面向相机对象(让我们说房子),然后按下按钮,它计算距离,并在屏幕上显示我.
如果有可能我可以找到一些教程或相关信息?
我正在尝试在我正在开发的应用程序中实现心跳录音功能.
这样做的首选方法是使用iPhone的相机打开灯,让用户将手指放在镜头上,并检测视频输入中与用户心脏相对应的波动.
我发现了一个非常好的起点,这里有以下堆栈溢出问题
该问题提供了绘制心跳时间图的有用代码.
它显示了如何启动AVCaptureSession并打开相机的指示灯,如下所示:
session = [[AVCaptureSession alloc] init];
AVCaptureDevice* camera = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if([camera isTorchModeSupported:AVCaptureTorchModeOn]) {
[camera lockForConfiguration:nil];
camera.torchMode=AVCaptureTorchModeOn;
// camera.exposureMode=AVCaptureExposureModeLocked;
[camera unlockForConfiguration];
}
// Create a AVCaptureInput with the camera device
NSError *error=nil;
AVCaptureInput* cameraInput = [[AVCaptureDeviceInput alloc] initWithDevice:camera error:&error];
if (cameraInput == nil) {
NSLog(@"Error to create camera capture:%@",error);
}
// Set the output
AVCaptureVideoDataOutput* videoOutput = [[AVCaptureVideoDataOutput alloc] init];
// create a queue to run the capture on
dispatch_queue_t captureQueue=dispatch_queue_create("catpureQueue", NULL);
// setup …Run Code Online (Sandbox Code Playgroud) 我正在开发一个Android应用程序,它正在处理来自摄像头的输入图像并将其显示给用户.这很简单,我PreviewCallback在相机对象上注册了一个setPreviewCallbackWithBuffer.这很简单,并且可以与旧的相机API一起使用
public void onPreviewFrame(byte[] data, Camera cam) {
// custom image data processing
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试移植我的应用程序以利用新的Camera2 API,我不确定我该怎么做.我在L预览示例中使用了Camera2Video,可以录制视频.但是,样本中没有直接的图像数据传输,因此我不明白应该在何处获取图像像素数据以及如何处理它.
有人可以帮我或建议如何获得PreviewCallbackandroid L 的功能,或者如何在将其显示到屏幕之前处理相机的预览数据?(相机对象上没有预览回调)
谢谢!
camera android image-processing preview android-5.0-lollipop
是否有用于从Mobile Safari访问iPhone相机的JavaScript API?
我很新HTML5.我尝试使用以下HTML5代码访问手机上的相机.它始终显示"不支持本机网络摄像头".似乎我的移动浏览器(safari和android 2.1网络浏览器)不支持相机.
你能告诉我我应该使用哪种浏览器来访问摄像头吗?
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, maximum-scale=1.0">
<style>
body {width: 100%;}
canvas {display: none;}
</style>
<script>
var video, canvas, msg;
var load = function () {
video = document.getElementById('video');
canvas = document.getElementById('canvas');
msg = document.getElementById('error');
if( navigator.getUserMedia ) {
video.onclick = function () {
var context = canvas.getContext("2d");
context.drawImage(video, 0, 0, 240, 320);
var image = {"demo" : {
"type" : "device",
"image" : canvas.toDataURL("image/png")
}};
};
var …Run Code Online (Sandbox Code Playgroud) 我有一个名为switchCamera的方法,我试图在点击按钮时从前向后切换相机,在一个平滑的过渡中.当我打电话给这个方法时,我的应用程序冻结了 - 我知道我做的不对.有人可以帮我从这里出去吗?
任何帮助深表感谢.
public void switchCamera(){
int camNum = 0;
camNum = Camera.getNumberOfCameras();
int camBackId = Camera.CameraInfo.CAMERA_FACING_BACK;
int camFrontId = Camera.CameraInfo.CAMERA_FACING_FRONT;
Camera.CameraInfo currentCamInfo = new Camera.CameraInfo();
//if camera is running
if (camera != null){
//and there is more than one camera
if (camNum > 1){
//stop current camera
camera.stopPreview();
camera.setPreviewCallback(null);
//camera.takePicture(null, null, PictureCallback);
camera.release();
camera = null;
//stop surfaceHolder?
if (currentCamInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT){
//switch camera to back camera
camera=Camera.open(camBackId);
}
else{
//switch camera to front camera
camera=Camera.open(camFrontId);
}
//switch …Run Code Online (Sandbox Code Playgroud) 我一直在使用自定义相机,最近我和Swift 3一起升级到Xcode 8 beta.我原来是这样的:
var stillImageOutput: AVCaptureStillImageOutput?
Run Code Online (Sandbox Code Playgroud)
但是,我现在收到警告:
在iOS 10.0中不推荐使用'AVCaptureStillImageOutput':改用AVCapturePhotoOutput
由于这是相当新的,我没有看到很多关于此的信息.这是我目前的代码:
var captureSession: AVCaptureSession?
var stillImageOutput: AVCaptureStillImageOutput?
var previewLayer: AVCaptureVideoPreviewLayer?
func clickPicture() {
if let videoConnection = stillImageOutput?.connection(withMediaType: AVMediaTypeVideo) {
videoConnection.videoOrientation = .portrait
stillImageOutput?.captureStillImageAsynchronously(from: videoConnection, completionHandler: { (sampleBuffer, error) -> Void in
if sampleBuffer != nil {
let imageData = AVCaptureStillImageOutput.jpegStillImageNSDataRepresentation(sampleBuffer)
let dataProvider = CGDataProvider(data: imageData!)
let cgImageRef = CGImage(jpegDataProviderSource: dataProvider!, decode: nil, shouldInterpolate: true, intent: .defaultIntent)
let image = UIImage(cgImage: cgImageRef!, scale: 1, orientation: .right)
}
})
}
} …Run Code Online (Sandbox Code Playgroud) 是否可以从浏览器访问相机(内置在苹果上)?
最佳解决方案是客户端javascript.希望避免使用Java或Flash.
编辑:对不起晚编辑,没有两个参数你无法计算它,所以首先需要从地面填充用户相机高度.
我已经检查了一些解决方案,但没有一个有用!
我知道工作距离=(传感器高度+主体高度)*焦距/传感器高度
和
distance to object (mm) = focal length (mm) * real height of the object (mm) * image height (pixels)
----------------------------------------------------------------
object height (pixels) * sensor height (mm)
Run Code Online (Sandbox Code Playgroud)
我希望与此保持距离:
您好我使用图像Exif ALAssetsLibrary获取以下信息
我得到了以下元数据:
Save image metadata.
{
DPIHeight = 72;
DPIWidth = 72;
FaceRegions = {
Regions = {
HeightAppliedTo = 2448;
RegionList = (
{
AngleInfoRoll = 270;
AngleInfoYaw = 0;
ConfidenceLevel = 376;
FaceID = 1;
Height = "0.1413399";
Timestamp = 5996166864910;
Type …Run Code Online (Sandbox Code Playgroud)