html怎么设置图片宽高比,CSS力图像调整尺寸和保持高宽比

下面的解决方案将允许放大和缩小图像。,取决于父框的宽度。

所有图像都有一个固定宽度的父容器。只作示范用途..在生产中,这将是父框的宽度。

此解决方案告诉浏览器以最大可用宽度呈现图像,并将高度调整为该宽度的百分比.parent {

width: 100px;}img {

display: block;

width: 100%;

height: auto;}

This image is originally 400x400 pixels, but should get resized by the CSS:

  

更理想的解决方案:

有了更好的解决方案,您将能够裁剪图像,而不管其大小,并添加一个背景颜色,以弥补裁剪。.parent {

width: 100px;}.container {

display: block;

width: 100%;

height: auto;

position: relative;

overflow: hidden;

padding: 34.37% 0 0 0; /* 34.37% = 100 / (w / h) = 100 / (640 / 220) */}.container img {

display: block;

max-width: 100%;

max-height: 100%;

position: absolute;

top: 0;

bottom: 0;

left: 0;

right: 0;}

This image is originally 640x220, but should get resized by the CSS:

    

对于指定填充的行,需要计算图像的高宽比,例如:640px (w) = 100%220px (h) = ?640/220 = 2.909100/2.909 = 34.37%

顶部填充物=34.37%。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于海思3519平台,你可以使用它的图像处理库来对图像进行填充。以下是一个使用海思3519平台进行图片填充的示例代码: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <assert.h> #include "mpi_sys.h" #include "mpi_vb.h" #include "mpi_isp.h" #define SRC_WIDTH 640 // 原始图像度 #define SRC_HEIGHT 360 // 原始图像度 #define DST_WIDTH 640 // 目标图像度 #define DST_HEIGHT 640 // 目标图像度 #define FILL_COLOR 255 // 填充颜色 int main() { int ret; VB_BLK vbSrcImage, vbDstImage; ISP_IMAGE_INFO_S stSrcImageInfo, stDstImageInfo; // 初始化系统资源 ret = HI_MPI_SYS_Init(); if (ret != HI_SUCCESS) { printf("系统初始化失败\n"); return ret; } // 初始化视频缓冲区 ret = HI_MPI_VB_Init(); if (ret != HI_SUCCESS) { printf("VB初始化失败\n"); HI_MPI_SYS_Exit(); return ret; } // 创建原始图像缓冲区 ret = HI_MPI_VB_AllocateCache(SIZE_ALIGN(SRC_WIDTH * SRC_HEIGHT * 2, 16), &vbSrcImage); if (ret != HI_SUCCESS) { printf("原始图像缓冲区创建失败\n"); HI_MPI_VB_Exit(); HI_MPI_SYS_Exit(); return ret; } // 创建目标图像缓冲区 ret = HI_MPI_VB_AllocateCache(SIZE_ALIGN(DST_WIDTH * DST_HEIGHT * 2, 16), &vbDstImage); if (ret != HI_SUCCESS) { printf("目标图像缓冲区创建失败\n"); HI_MPI_VB_ReleaseBlock(vbSrcImage); HI_MPI_VB_Exit(); HI_MPI_SYS_Exit(); return ret; } // 设置原始图像信息 memset(&stSrcImageInfo, 0, sizeof(ISP_IMAGE_INFO_S)); stSrcImageInfo.u32Width = SRC_WIDTH; stSrcImageInfo.u32Height = SRC_HEIGHT; stSrcImageInfo.enPixFmt = PIXEL_FORMAT_YUV_SEMIPLANAR_420; // 设置目标图像信息 memset(&stDstImageInfo, 0, sizeof(ISP_IMAGE_INFO_S)); stDstImageInfo.u32Width = DST_WIDTH; stDstImageInfo.u32Height = DST_HEIGHT; stDstImageInfo.enPixFmt = PIXEL_FORMAT_YUV_SEMIPLANAR_420; // 填充原始图像数据 memset((HI_U8 *)HI_MPI_SYS_Mmap(vbSrcImage), FILL_COLOR, SRC_WIDTH * SRC_HEIGHT * 2); // 填充目标图像数据 memset((HI_U8 *)HI_MPI_SYS_Mmap(vbDstImage), FILL_COLOR, DST_WIDTH * DST_HEIGHT * 2); // 调用ISP库的图像处理函数进行图像填充 ret = HI_MPI_ISP_ProcessImage(vbSrcImage, &stSrcImageInfo, vbDstImage, &stDstImageInfo); if (ret != HI_SUCCESS) { printf("图像填充失败\n"); } // 释放图像缓冲区 HI_MPI_VB_ReleaseBlock(vbSrcImage); HI_MPI_VB_ReleaseBlock(vbDstImage); // 退出系统资源 HI_MPI_VB_Exit(); HI_MPI_SYS_Exit(); return ret; } ``` 这段代码使用了海思3519平台提供的 `mpi_sys.h`、`mpi_vb.h` 和 `mpi_isp.h` 头文件以及相关函数来进行图像填充。首先,它初始化了系统资源和视频缓冲区。然后,它创建了原始图像缓冲区和目标图像缓冲区,并设置了图像信息,包括度、度和像素格式。接下来,它使用指定的颜色填充原始图像数据和目标图像数据。最后,它调用ISP库的图像处理函数来进行图像填充。最后,释放图像缓冲区并退出系统资源。 请注意,这只是一个简单的示例代码,你需要根据实际情况进行修改和适配,确保正确使用海思3519平台的图像处理库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值