我尝试使用以下代码缩放相机CameraX
。
首先,我得到一个Preview
来自并尝试使用如下所示CameraX
执行缩放。Preview
var config = CameraX.getDefaultUseCaseConfig(PreviewConfig::class.java, lensFacing)\nvar preview = Preview(config)\npreview.zoom(zoom)\n
Run Code Online (Sandbox Code Playgroud)\n\npreview.zoom()
在我再次绑定并收到一些错误之后CameraX
,它不起作用。
CameraX.bindToLifecycle(this, preview, imageCapture, videoCapture)\n
Run Code Online (Sandbox Code Playgroud)\n\n当上面的代码不起作用时,我CameraX.unbindAll()
首先尝试使用,然后调用CameraX.bindToLifecycle()
. 但再次遇到一些错误并且缩放没有成功。
让我知道如何使用 API 缩放相机CameraX
。
\n\n\n更新错误日志如下:
\n
仅使用错误日志CameraX.bindToLifecycle()
:
java.lang.IllegalArgumentException: Exceeded max simultaneously bound image capture use cases.\n at androidx.camera.camera2.impl.UseCaseSurfaceOccupancyManager.checkUseCaseLimitNotExceeded(UseCaseSurfaceOccupancyManager.java:61)\n at androidx.camera.camera2.impl.Camera2DeviceSurfaceManager.getSuggestedResolutions(Camera2DeviceSurfaceManager.java:146)\n at androidx.camera.core.CameraX.calculateSuggestedResolutions(CameraX.java:449)\n at androidx.camera.core.CameraX.bindToLifecycle(CameraX.java:144)\n at com.android.example.cameraxbasic.fragments.CameraFragment$updateCameraUi$2.onTouch(CameraFragment.kt:408)\n at android.view.View.dispatchTouchEvent(View.java:12512)\n at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3032)\n at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)\n at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3032)\n at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)\n …
Run Code Online (Sandbox Code Playgroud) 我有一个 2 显示器设置。我将一台显示器设置为垂直,因为这样更容易阅读长代码。我设置 VSCode 的方式是为同一个工作区打开 2 个单独的 VSCode 窗口(按 CTRL + K,然后按 O)。一个窗口位于常规显示器上,另一个窗口位于垂直显示器上。一切正常。
然而,我遇到的问题是,在垂直显示器上,由于宽高比,VSCode 的字体太大,所以我必须使用内置的 VSCode 缩放功能(CTRL +/-)缩小一点。这工作正常,我可以调整它,使其完全可读。不幸的是,当我缩放时,它会缩放所有打开的 VSCode 窗口,包括我的主监视器上的窗口。那里的文字就会变得太小。
如何为每个打开的 VSCode 窗口设置单独的缩放级别?
我们将在Android上的OpenGL ES中开发一个滚动/缩放场景,非常像"愤怒的小鸟"中的一个级别,但更像是World Of Goo中的级别.更像后者,因为世界不会包含"愤怒的小鸟"中的重复图层,而是一个大图像.由于场景需要滚动/缩放,因此很多内容都不可见,我想知道实现渲染的最有效方法,只关注环境(即不是世界范围内的对象而是背景层).
我们将使用正交投影.
首先想到的是创建一个世界大小的大4个顶点矩形,其背景纹理映射到它,并使用glTranslatef/glScalef进行平移/缩放.但是,我想知道屏幕边界之外的非可见区域是否仍然由OpenGL渲染,因为它没有被剔除(你将丢失可见区域以及只有4个顶点).因此,细分这个矩形是否更有效,所以可以剔除不可见的较小的矩形?
另一种选择是创建一个填充屏幕的4顶点矩形,然后通过调整其纹理坐标来移动背景.但是,考虑到纹理大小的限制,我想在构建更大的世界时会遇到问题.对于像AngryBirds这样的重复背景来说,这似乎是一个很好的实现.
也许有另一种方式..?
如果有人知道如何在AngryBirds/World of Goo中完成它,请分享我喜欢听的内容.他们似乎已经实现了一个系统,可以让世界平稳地移动和缩放(WorldOfGoo =非常).
我正在尝试创建一个带有时间刻度的条形图,可以放大到任何时间段.我能够为我的x轴(时间刻度)创建缩放功能,但是我的数据(在这种情况下是rects)不会随着我的轴一起变焦.
这是我的图表的简化版本:http://jsfiddle.net/gorkem/Mf457/5/embedded/result/ 正如您所看到的,我可以放大到我的x轴,但条形不会放大.
这里是jfiddle链接:http://jsfiddle.net/gorkem/Mf457/6/
var y = d3.scale.linear().domain([0, max_val]).range([graph_height, 0]);
var x = d3.time.scale().domain([minDate, maxDate]).range([0, graph_width]);
var chart = d3.select(location).append("svg")
.attr("class", "chart")
.attr("width", graph_width+20)
.attr("height", graph_height+20)
.call(d3.behavior.zoom().x(x).scaleExtent([1, 8]).on("zoom", zoom));
var lines = chart.selectAll("line");
var lines_y = lines
.data(x.ticks(5))
.enter().append("line")
.attr("x1", x)
.attr("x2", x)
.attr("y1", function (d) {return graph_height - 20 - d;})
.attr("y2", graph_height)
.style("stroke", "#ccc");
var lines_x = lines
.data(y.ticks(10))
.enter().append("line")
.attr("x1", 0)
.attr("x2", graph_width)
.attr("y1", y)
.attr("y2", y)
.style("stroke", "#ccc");
xAxis = …
Run Code Online (Sandbox Code Playgroud) 我在Delphi中制作看起来像Paint的东西.我找到了如何制作缩放功能:
procedure SetCanvasZoomFactor(Canvas: TCanvas; AZoomFactor: Integer);
var
i: Integer;
begin
if AZoomFactor = 100 then
SetMapMode(Canvas.Handle, MM_TEXT)
else
begin
SetMapMode(Canvas.Handle, MM_ISOTROPIC);
SetWindowExtEx(Canvas.Handle, AZoomFactor, AZoomFactor, nil);
SetViewportExtEx(Canvas.Handle, 100, 100, nil);
end;
end;
procedure TMainForm.btnZoomPlusClick(Sender: TObject);
var
bitmap: TBitmap;
begin
bitmap := TBitmap.Create;
if(zoomVal < 1000) then
zoomVal:=zoomVal+zoomConst; //zoomVal = 100 by default; zoomConst = 150;
try
bitmap.Assign(MainForm.imgMain.Picture.Bitmap);
SetCanvasZoomFactor(bitmap.Canvas, zoomVal);
Canvas.Draw(MainForm.imgMain.Left,MainForm.imgMain.Top, bitmap);
finally
bitmap.Free
end;
end;
Run Code Online (Sandbox Code Playgroud)
但是,问题是 - 它仅缩放图像的左上区域.
缩放前的示例:
放大后:
我希望能够在缩放后移动所有图片区域.我该怎么做?
我正在使用twitter bootstrap框架.我想禁用放大触摸设备.我已经习惯了
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" />
Run Code Online (Sandbox Code Playgroud)
这个.没有bootstrap框架,我可以防止缩放触摸设备,但与框架我不是.那么有没有办法解决这个问题.
提前致谢.
我在Ionic中创建了一个应用程序,它应该有一个可缩放的内容部分(可以缩放).我有以下元素:
<ion-scroll zooming="true" direction="xy" min-zoom="1" scrollbar-x="false" scrollbar-y="false"> ... </ion-scroll>
Run Code Online (Sandbox Code Playgroud)
这适用于iOS和Android,但在Windows Phone 8.1上,内容不会缩放.它只是稍微滚动元素并移回原始状态.
我知道Ionic不完全支持Windows Phone,但我希望有人知道我做错了什么或有人有另一种内容缩放解决方案.
提前致谢.
我正在研究一个将raster
(图像)放入的Paper.js应用程序view
.然后它缩放以适合图像,以便一次可见所有图像.它主要是工作,但图像最终偏移,如下所示:
它看起来应该更像这样:
这是制作view
图像,添加图像并调用缩放以适合的代码:
// Set up HTMLImage
var image = new Image(this.props.image.width, this.props.image.height);
image.src = 'data:image/png;base64,' + this.props.image.imageData;
//var canvas = React.findDOMNode(this.refs.canvas); // React 0.13 +
var canvas = this.refs.canvas.getDOMNode();
// Scale width based on scaled height; canvas height has been set to the height of the document (this.props.height)
var scalingFactor = canvas.height/image.height;
canvas.width = image.width * scalingFactor;
// Initialize Paper.js on the canvas
paper.setup(canvas);
// Add image to Paper.js canvas
var raster = …
Run Code Online (Sandbox Code Playgroud) 我正在学习 CameraX,CameraXBasic是示例代码。
我写了一个基于zoomX函数的CameraFragment.kt。你可以看到代码A。我认为该功能可以随时放大图片。
我发现一个画面可以当我是变焦调用它与SA小的值,例如zoomX(2f)
,zoomX(3f)
,但画面不会放大当我再次用大值,比如zoomX(6.0f)
,zoomX(7.0f)
为什么?
代码 A
private lateinit var viewFinder: TextureView
private var preview: Preview? = null
fun zoomX(orign: Float ){
val x=orign+1
val singleWidth=viewFinder.width/x
val singleHeight=viewFinder.height/x
val left=viewFinder.width/2f-singleWidth/2f
val right=left+singleWidth
val top=viewFinder.height/2f-singleHeight/2f
val bottom=top+singleHeight
val my= Rect(left.toInt(), top.toInt(), right.toInt(), bottom.toInt())
preview?.zoom(my)
}
Run Code Online (Sandbox Code Playgroud)