标签: aspect-ratio

为什么 FFmpeg 打印 SAR 而不是 PAR?

如果我的知识是正确的,SAR(存储纵横比)是像素尺寸的比率。例如,640 × 480 视频的 SAR 为 640/480 = 4:3。

而 PAR(Pixel Aspect Ratio)是像素高度和宽度的比率,大多数现代视频都有方形 PAR (1:1)。

但是当我试图用它来检查它时,ffmpeg -i我得到了所有测试视频的方形 SAR 而不是方形 PAR。

Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 1758 kb/s, 24.99 fps, 25 tbr, 25 tbn, 50 tbc
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 540x360  [SAR 1:1 DAR 3:2], 386 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), …
Run Code Online (Sandbox Code Playgroud)

video ffmpeg aspect-ratio

8
推荐指数
2
解决办法
6139
查看次数

PyQt 保持纵横比固定

我正在研究 PyQt5 GUI,到目前为止,我只是有使用 python 脚本的经验,并没有深入研究创建用户界面。

GUI 必须用于不同的屏幕(可能还有一些旧的 4:3 比例屏幕),并且需要在不同尺寸下看起来不错。现在,我让我的生活更轻松的方法是强制执行窗口的固定纵横比并根据窗口大小调整不同元素的大小。

from PyQt5 import QtCore, QtGui, QtWidgets

class MainWindow(QtWidgets.QMainWindow):
    def __init__(self, parent= None):
        super().__init__(parent)
        self.form_widget = FormWidget(self)
        self.setCentralWidget(self.form_widget)
        self.resize(200, 400)
        self.sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
        self.sizePolicy.setHeightForWidth(True)
        self.setSizePolicy(self.sizePolicy)

    def heightForWidth(self, width):
        return width * 2

class FormWidget(QtWidgets.QWidget):

    def __init__(self, parent):
        super().__init__(parent)

    def resizeEvent(self, event):
        f = self.font()
        temp = event.size().height()
        f.setPixelSize(temp / 16)
        self.setFont(f)

        return super().resizeEvent(event)


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)

    w = MainWindow()
    w.show()
    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

根据窗口大小调整元素大小工作正常,但根本不保留窗口纵横比。我heightForWidth从旧的 PyQt4 …

python pyqt aspect-ratio python-3.x pyqt5

8
推荐指数
1
解决办法
1209
查看次数

设备纵横比(媒体查询)不适用于Droid 2

我有一些内容需要不同的样式最终基于宽高比(基本上它是针对一个平台,但作为一个"会很好"我想让内容至少在其他平台上显得正确).我发现Droid 2(Android 2.2股票)没有响应任何这些查询:

only all and (device-aspect-ratio: 854/480)
only all and (device-aspect-ratio: 480/854)
only all and (aspect-ratio: 854/480)
only all and (aspect-ratio: 480/854)
Run Code Online (Sandbox Code Playgroud)

手机或操作系统是否不支持宽高比查询?Droid 2是否充满悲伤?到目前为止,宽高比测试对iPhone 3GS/4/4S和iPad来说非常有效.或者,如果他们实际上不支持设备宽高比,那么在我的iOS宽高比测试后,有人会建议处理Droid 2/Nexus分辨率.

我正试图回避使用max-width,因为横向上的某些Android设备比纵向上的iPad宽,而且我遇到了设备根据设定宽度错误地识别为iPad的冲突.任何见解将不胜感激.

css android aspect-ratio media-queries

7
推荐指数
1
解决办法
1349
查看次数

Cocos2d和新的iPhone 5宽高比

我刚看到iPhone 5的发布,它说像素分辨率已经变为1136*640,这就影响了应用程序的ASPECT RATIO.

我应该如何在我的Cocos2d游戏中处理这个问题?我为"旧的"960*640视网膜显示屏完成了所有图形,我猜这些将在iPhone 5屏幕上扭曲.

我对吗?或者是否会显示"旧分辨率"图像而不修改宽高比并使某些屏幕变黑?

编辑:有没有办法让Cocos2d检测它是否是iPhone 5,在这种情况下在屏幕的顶部绘制背景文件(前960像素)并获得一些其他自定义背景文件在剩余像素中绘制(例如,那些可能是一些自定义广告横幅或我们的游戏仅适用于iPhone 5的一些额外按钮).

aspect-ratio screen-resolution cocos2d-iphone iphone-5

7
推荐指数
2
解决办法
8437
查看次数

调整具有固定纵横比的 Tkinter 框架的大小

我正在寻找一种方法来使 Tkinter Frames 在调整大小时表现得有点像这样:

from Tkinter import *
w = Tk()
w.aspect(1,1,1,1)
w.mainloop()
Run Code Online (Sandbox Code Playgroud)

所以我想要这里的代码:

import Tkinter as tk
from Tkconstants import *
r=tk.Tk()
content_frame=tk.Frame(r,borderwidth=5,relief=GROOVE)
content_frame.grid(row=0,column=0,sticky=(N,S,E,W))
tk.Label(content_frame,text='content').pack()
pad_frame=tk.Frame(r,borderwidth=5,relief=GROOVE)
pad_frame.grid(row=1,column=0,sticky=(N,S,E,W))
tk.Label(pad_frame,text='-pad-').pack()
r.rowconfigure(0, weight=1)
r.rowconfigure(1, weight=1)
r.columnconfigure(0, weight=1)
r.mainloop()
Run Code Online (Sandbox Code Playgroud)

它基本上创建了 2 个框架,一个应该包含一些内容(在我的应用程序中,这个框架包含一个可以调整大小的 mathplotlib 图)和一个仅用于填充。

要按照以下规则调整大小:

  • 内容框架以固定的纵横比调整大小(假设它始终需要是方形的)
  • 垫框占用剩余的(垂直)空间

有任何想法吗?我已经阅读了一段时间的手册,似乎找不到合适的东西。

-丹尼尔

python resize tkinter frame aspect-ratio

7
推荐指数
1
解决办法
7834
查看次数

在FireFox中高度100%折叠的内联块隐藏图像

我的CSS问题只在FireFox中可见(cur.ver.31).我正在尝试制作一个响应式布局,带有一排图像(带有链接),这些图像居中,并且具有与视口宽度相同的高度和比例.我的方法是创建一个具有固定宽高比的容器,并将图像放在里面(每个图像在一个单独的<a>标签内),居中,然后将它们的高度缩放到容器高度.它在FireFox中除外,效果很好.要做到这一点我申请display: inline-block; height: 100%<a>标签和height: 100%; width: auto<img>标签.对于某些(未知)原因,FF没有<a>正确计算标签的宽度(当它包含上述<img>标签时)并且它水平折叠.结果是,所有<a>具有0宽度的所有宽度彼此非常接近(仅由白色空间分开),并且图像彼此重叠.我display: block; float: left;<a>标签上得到了相同的结果.

CSS

.container-ratio {
    width: 100%;
    height: 0;
    position: relative;
    padding-bottom: 10%;
    background: #ddd;
}
.container-inner {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: #ddf;
    text-align: center;
}
.block {
    display: inline-block;
    height: 100%;
    background: #f00;
}
.block img {
    height: 100%;
    width: auto;
    display: block;

} …
Run Code Online (Sandbox Code Playgroud)

html css firefox aspect-ratio width

7
推荐指数
1
解决办法
1349
查看次数

正确的方法来计算保持纵横比的最佳相机预览尺寸

如何以编程方式准确地确定在设备屏幕尺寸上显示摄像头预览的应用程序的最佳预览大小?(或者在可变尺寸的任何视图中,真的).

在您尝试将其标记为数百万其他方面比例之一的相关问题之前,请理解我正在寻找与通常可用的解决方案不同的解决方案.我问这个问题,因为我已经阅读了很多"答案",但他们都指出了一种我认为不完整的解决方案(并且可能存在缺陷,我将在这里描述).如果这不是一个缺陷,请帮助我理解我做错了什么.

我已经阅读了很多关于应用程序如何选择预览大小的不同实现,并且大多数采用的方法是我称之为"足够接近"的方法(您可以根据减去大小选项的比例来确定哪个选项最佳)屏幕分辨率的比率,并找到具有最低值的选项).这种方法似乎无法确保它选择最佳选择,但确保它不会选择最差的选项.

例如,如果我尝试在屏幕分辨率为的设备上迭代每个可用的预览大小720x1184并显示预览全屏(720x1184),这里是相机预览的结果(按照格式中最接近屏幕分辨率的选项排序abs(ratio of size option - screen resolution ratio)) .所有尺寸均来自.getSupportedPreviewSizes).("结果"来自使用测试用例的视觉观察,使用静态圆圈出现在相机的取景器中并且不是程序化的)

720.0/1184.0 = 0.6081081081081081

Res         Ratio         Delta in ratios  Result       
----------------------------------------------------   
176/144   = 1.22222222222 (0.614114114114) (vertically stretched)
352/288   = 1.22222222222 (0.614114114114) (vertically stretched)
320/240   = 1.33333333333 (0.725225225225) (vertically stretched)
640/480   = 1.33333333333 (0.725225225225) (vertically stretched)
720/480   = 1.5           (0.891891891892) (vertically stretched)
800/480   = 1.66666666667 (1.05855855856)  (looks good)
640/360   = 1.77777777778 (1.16966966967)  (horizontally squashed) …
Run Code Online (Sandbox Code Playgroud)

java android aspect-ratio android-camera cwac-camera

7
推荐指数
1
解决办法
5099
查看次数

UIImageView保持宽高比,但适合宽度

我有一个固定宽度和高度的UIImageView.我不想改变UIImageView的框架.我想让它保持一个图像,我保持纵横比,我适应宽度,让图像太高,或太短,UIImageView的框架.像这样:

UIImageView框架

红色是UIImageView的框架.灰色是显示的实际图像.

aspect-ratio uiimageview uiimage ios swift

7
推荐指数
1
解决办法
1万
查看次数

控制主题背景的长宽比(Android)

我已经为我的应用程序设置了一个加载屏幕(启动),通过一些建议解释了"正确的方法":

styles.xml:

<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="android:windowBackground">@drawable/splash_vector_drawable</item>
</style>
Run Code Online (Sandbox Code Playgroud)

表现:

<activity
        android:name="com.tba.versionc.SplashActivity"
        android:theme="@style/SplashTheme">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>

            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
Run Code Online (Sandbox Code Playgroud)

Java的:

public class SplashActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Intent intent = new Intent(this, MainActivity.class);
        startActivity(intent);
        finish();
    }
}
Run Code Online (Sandbox Code Playgroud)

当我为启动画面设计矢量drawable时,我设置它的宽高比以匹配我的手机(16:9),它似乎工作正常,但我担心在设备上运行时会出现的宽高比会发生什么屏幕比例不同.

为了消除它"伸展以适应"错误尺寸屏幕的可能性,我宁愿它是中心裁剪,但由于它不是ImageView,甚至是布局文件的一部分,我不知道有什么办法设置中心裁剪属性.

任何人?

screen splash-screen aspect-ratio drawable

7
推荐指数
1
解决办法
2075
查看次数

无论父级的宽高比如何,保持 div 宽高比并居中

我发现这个 css 代码可以让我保持 div 的长宽比。

.container {
  width: 100%;
  height: 100%;
  background-color: red;
  position: absolute;
 }


.wrapper {
  width: 100%;
  /* whatever width you want */
  display: inline-block;
  position: relative;
  top: 50%;
  transform: translate(0%, -50%);
}
.wrapper:after {
  padding-top: 56.25%;
  /* 16:9 ratio */
  display: block;
  content: '';
}
.main {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
 /* fill parent */
  background-color: deepskyblue;
  /* let's see it! */
  color: white;
}
Run Code Online (Sandbox Code Playgroud)

请参阅此 JSFiddle 示例:https ://jsfiddle.net/1uyo07tg/3/ …

html css aspect-ratio responsive-design

7
推荐指数
2
解决办法
2213
查看次数