精华内容
下载资源
问答
  • MFC 获取字符串像素高度和宽度

    千次阅读 2017-03-21 09:17:54
    方法一:// 取文本的尺寸 CRect rc; CFont *pOldfont=pdc->SelectObject(&fn); // 设置新字体 pDC->DrawText(L"一二三", rc, DT_CALCRECT);方法二:void CDrawPic::AccountStr(CDC *pdc, int &width,

    方法一:

    // 取文本的尺寸
    CRect rc;
    CFont *pOldfont=pdc->SelectObject(&fn);            // 设置新字体
    pDC->DrawText(L"一二三", rc, DT_CALCRECT);

    方法二:

    void CDrawPic::AccountStr(CDC *pdc,
                              int &width,        // 字串宽度(像素)
                              int &height,        // 字串高度(像素)
                              CString str,        // 字串
                              int size,            // 字体大小
                              CString font)        // 字体名
    {
        CSize txtpot;
        CFont fn;
        fn.CreatePointFont(size,(LPCTSTR)font);
        CFont *pOldfont=pdc->SelectObject(&fn);            // 设置新字体
    
        txtpot=pdc->GetTextExtent(str);                    // 字串的长度像素
        width=txtpot.cx;
        height=txtpot.cy;
        pdc->SelectObject(pOldfont);
    }

    这些方法也是从网上搜罗的,暂时没有实验是否可用

    展开全文
  • 易语言取文本的像素宽度源码,取文本的像素宽度,取字符串宽度,API_DrawText,API_GetDC,API_GetWindowRect
  • Qt 中获取字体的像素高度和宽度

    千次阅读 2011-10-21 17:07:19
    近在用Qt做文字的滚屏效果,要计算字体的像素高度和像素宽度,用到以下几个函数: 1. QLabel::fontMetrics().width(QString s): 获取字符串s的总像素宽度。 int QFontMetrics::width ( const QString & ...
    近在用Qt做文字的滚屏效果,要计算字体的像素高度和像素宽度,用到以下几个函数: 
    

    1. QLabel::fontMetrics().width(QString s): 获取字符串s的总像素宽度。

    int QFontMetrics::width ( const QString & text, int len = -1 ) const

    Returns the width in pixels of the first len characters of text. If len is negative (the default), the entire string is used.

    Note that this value is not equal to boundingRect().width(); boundingRect() returns a rectangle describing the pixels this string will cover whereas width() returns the distance to where the next string should be drawn.

    See also boundingRect().

    2. QLabel::fontMetrics().height(): 获取字体的高度。

    int QFontMetrics::height () const

    Returns the height of the font.

    This is always equal to ascent()+descent()+1 (the 1 is for the base line).

    See also leading() and lineSpacing().

    3. QLabel::fontMetrics().lineSpacing(): 获取字体的高度,包括文字的实际宽度和行距。

    4. QLabel::fontMetrics().leading(): 行间距

    int QFontMetrics::leading () const

    Returns the leading of the font.

    This is the natural inter-line spacing.

    See also height() and lineSpacing().

    其他函数参见QT 的 QFontMetrics Class Reference

    int QFontMetrics::lineSpacing () const

    Returns the distance from one base line to the next.

    This value is always equal to leading()+height().

    See also height() and leading().

    展开全文
  • 一、高度计算 EXCEL的高度在文档记录是以磅为单位的,sheetFormatPr类的defaultRowHeight是默认行高以磅为单位大小。 MAC WPS默认值:17.6磅 ( 默认字体:...那么1磅=1/72英寸,而1英寸所含有PPI个像素,这里就不详...

    经过笔者多次查阅、验证,笔者认为官方文档在计算列款存在误导,实际使用与文档不一致,详见第三部分,欢迎大家来指正本文在宽度计算的问题,谢谢。

    一、高度计算

    EXCEL的高度在文档记录是以磅为单位的,sheetFormatPr类的defaultRowHeight是默认行高以磅为单位大小。
    MAC WPS默认值:17.6磅 ( 默认字体:宋体 大小12磅), Windos WPS值:13.5磅 (默认字体:宋体 大小11磅)。
    换算公式为:72磅=1英寸,1英寸=2.54厘米。
    那么1磅=1/72英寸,而1英寸所含有PPI个像素,这里就不详细展开PPI的计算了,现在一般计算机默认为96,详细的计算可以自己百度。

       因此磅到像素的转换为 :  PX=(PT/72*PPI)      (公式-1) 其中PX为像素 PT为磅
          厘米到像素的转换为: PX= (mm/2.54*PPI) (公式-2) 其中PX为像素 mm为厘米
    
    1. WINDOWS WPS计算 默认字体:宋体 大小11磅

          高度为13.5磅的像素为   px=13.5/72*96 =18.00 
          高度为0.48厘米的像素为 px=0.48/2.54*96 =18.14
      

      在WPS的若某行存在与默认不一样的高度时,在某行类的属性上ht就存在磅值,其计算方式与默认磅值相同。
      此处的厘米数为wps上展示的,下同,和上述计算对比使用,有兴趣的同学可以根据宏获取磅值,再算像素

    2. MAC WPS计算 默认字体:宋体 大小12磅

            高度为17.6磅的像素为    px=17.6/72*96 =23.46     
            高度为0.62厘米的像素为 px=0.62/2.54*96 =23.43 
      

    二、宽度计算

    宽度值到像素的转换为 : PX=(width*8) (公式-3) 其中PX为像素 width为 defaultColWidth或列的值。

    1. WINDOWS WPS计算 默认字体:宋体 大小11磅 defaultColWidth值:9

              宽度width为9的像素为               px=9*8 =72.00                
              宽度为1.9厘米的像素为              px=1.9/2.54*96 =71.81   
           同样设置,在col上设置列宽时:
              宽度width为22.375的像素为       px=22.375*8 =179                
              宽度为4.74厘米的像素为            px=4.74/2.54*96 =179.14         
      
    2. MAC WPS计算 默认字体:宋体 大小12磅 defaultColWidth值:9.1428

               宽度为9.1428的像素为     px=9.1428*8 =73.14       
               宽度为1.79厘米的像素为  px=1.79/2.54*96 =67.65 
               宽度为1.93厘米的像 为  px=1.93/2.54*96 =72.94 (同样的设置在windows下)
      

      不知道WPS为何在MAC系统下计算的厘米数与WINDOWS下为何不同,难道是bug。
      不过73.14-67.65=5.49px(难道是2*padding+1gridlines)不计算在内,有懂WPS的人可以告诉笔者一下。当然对比两个系统下WPS还有其他差异,此处就不再一一描述来,总之研究WPS还是在WINDOWS下比较好(笔者被坑惨了,吐槽一下)。

    三、宽度理论部分

    1. sheetFormatPr对象类的defaultColWidth属性

    Default column width measured as the number of characters of the maximum digit width of the normal style’s font.
    If the user has not set this manually, then it can be calculated:
    defaultColWidth = baseColumnWidth + {margin padding (2 pixels on each side, totalling 4 pixels)} + {gridline (1pixel)}
    If the user has set this manually, then there is no calculation, and simply a value is specified.
    The possible values for this attribute are defined by the W3C XML Schema double datatype.
    默认列宽度,以普通样式字体的最大数字宽度的字符数度量。
    如果用户尚未手动设置此内容,则可以计算:
    defaultColWidth = baseColumnWidth + {margin padding (2 pixels on each side, totalling 4 pixels)} + {gridline (1pixel)}
    如果用户已手动设置此,则没有计算,并且只指定一个值。

    1. COl对象类的width (Column Width)属性

    Column width measured as the number of characters of the maximum digit width of the numbers 0, 1, 2, …, 9 as rendered in the normal style’s font. There are 4 pixels of margin padding (two on each side), plus 1 pixel padding for the gridlines.
    width = Truncate([{Number of Characters} * {Maximum Digit Width} + {5 pixel padding}]/{Maximum Digit Width}256)/256
    [Example: Using the Calibri font as an example, the maximum digit width of 11 point font size is 7 pixels (at 96 dpi). In fact, each digit is the same width for this font. Therefore, if the cell width is 8 characters wide, the value of this attribute must beTruncate([8
    7+5]/7256)/256 = 8.7109375. end example]
    To translate the value of width in the file into the column width value at runtime (expressed in terms of pixels), use this calculation:
    =Truncate(((256 * {width} + Truncate(128/{Maximum Digit Width}))/256)
    {Maximum Digit Width})
    [Example: Using the same example as above, the calculation would be Truncate(((2568.7109375+Truncate(128/7))/256)7) = 61 pixels. end example]
    To translate from pixels to character width, use this calculation:
    =Truncate(({pixels}-5)/{Maximum Digit Width} * 100+0.5)/100
    [Example: Using the example above, the calculation would be Truncate((61- 5)/7
    100+0.5)/100 = 8 characters. end example]
    [Note: when wide borders are applied, part of the left/right border must overlap with the 2 pixel padding on each side. Wide borders do not affect the width calculation of the column. end note]
    [Note: When the sheet is in the mode to view formulas instead of values, the pixel width of the column is doubled. end note]
    The possible values for this attribute are defined by the W3C XML Schema double datatype.
    列宽度,以数字 0、1、…、9 的最大数字宽度的字符数度量,以普通样式的字体呈现。边距填充有 4 个像素(每侧两个),
    加上网格线的 1 像素填充。
    width = Truncate([{Number of Characters} * {Maximum Digit Width} + {5 pixel padding}]/{Maximum Digit Width}256)/256 (公式-4)
    示例:以 Calibri 字体为例,11 (pt)字体大小的最大数字宽度为 7 像素(在 96 dpi 时)。
    因此,如果单元格宽度为 8 个字符宽,则此属性的值必须为
    =Truncate([8
    7+5]/7
    256)/256 = 8.7109375
    在运行时将文件中的宽度值转换为列宽度值(以像素表示),使用此计算:
    =Truncate(((256 * {width} + Truncate(128/{Maximum Digit Width}))/256){Maximum Digit Width}) (公式-5)
    [示例:使用与上述相同的示例,计算将为Truncate(((256
    8.7109375+Truncate(128/7))/256)7) = 61 像素。
    要从像素转换为字符宽度,请使用此计算:
    Truncate(({pixels}-5)/{Maximum Digit Width} * 100+0.5)/100
    [示例:使用上面的示例,计算将为Truncate((61- 5)/7
    100+0.5)/100 = 8 个字符。

    以上理论内容均是官方文档,在文档笔者发现在计算公式-4与常识有悖论的地方,假设默认8个字符宽度,那么将默认字符8,Maximum Digit Width为X导入上述 (公式-4 )

                       (8X+5)/256X=256width
                          =》 width =(8X+5)/ X    
                          =》 width =  8+5/X           (公式-5)
    

    在公式-5中 5/x为一个反函数,超过5以后随着X-Maximum Digit Width的变大,宽度几乎保持不变?我们从实际的应用中可以知道数字的宽度随着字体的变大,宽度也变大, 这个从EXCEL的文档中就可以轻易证实。
    这也是笔者没有使用官方的运算的方法的原因,根据这个公式怎么也计算不出想要的,这里也欢迎WPS/OFFICE的专家指正。

    展开全文
  • 获取img对象的高度宽度像素

    千次阅读 2017-04-24 16:35:52
    今天在重写放大镜的时候用到不同大小的图片,放大后的图片定位就出现问题了,思考后觉得应该利用原图的宽计算一下确定各种框的比例和参数等,而不是限制所使用的的图片尺寸,更改页面的尺寸,于是又套了几层函数,...

    今天在重写放大镜的时候用到不同大小的图片,放大后的图片定位就出现问题了,思考后觉得应该利用原图的宽高计算一下确定各种框的比例和参数等,而不是限制所使用的的图片尺寸,更改页面的尺寸,于是又套了几层函数,最终是解决了。

    js中对img对象的基本使用就是这些:

    var img=new Image();

    img.src="图片路径";

    然后调用

    img.width

    img.height

    写成JQ的话也就是:

    $img=new Image();
    $img.src=$('#box>img').attr('src'); //自定义对象
    $imgwidth=$img.width;
    $imgheight=$img.height;

    另外就是更改img的src:

    $('#Bbox').css('background','url('+$(this).find('img').attr('src')+')');

    这里要注意的是background后的参数格式,这里我用的‘ ’+ 参数  + ‘ ’。

    展开全文
  • POI导出EXCEL设置高度和宽度

    万次阅读 2017-11-01 09:32:50
    SSFRow hssfRow = sheet.createRow(0);//创建表头hssfRow.setHeight((short)1000); //设置行高 ... //设置某一列宽度 POI导出EXCEL设置跨行跨列(在所有数据行和列创建完成后再执行) CellRangeAddress r
  • POI设置单元格的宽度和高度

    万次阅读 2015-06-24 17:17:27
    POI 1.2教程 - 2.2.7 设置单元格的宽度和高度 博客分类:  Java学习 POI   NPOI 1.2教程 - 2.2.7 设置单元格的宽度和高度 作者:Tony Qu NPOI官方网站:http://npoi.codeplex.com/   ...
  • 一般网页宽度设置多少像素合适?

    千次阅读 2013-03-25 18:01:40
    1、800*600下,网页宽度保持在778以内,就不会出现水平滚动条,高度则视版面和内容决定。 2、1024*768下,网页宽度保持在1002以内,如果满框显示的话,高度是612-615之间.就不会出现水平滚 动条和垂直滚动条。 3、...
  • 导致删除按钮没有挤到屏幕外,所以出此篇在适配其中获取屏幕宽度设置给RelativeLayout WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); DisplayMetrics ...
  • JavaScript获取和设置窗口宽度、高度

    千次阅读 2016-07-14 08:42:42
    Window的innerHeight和innerWidth属性 只读属性,声明了窗口的文档显示区的高度和宽度,以像素计。 这里的宽度和高度不包括菜单栏、工具栏以及滚动条等的高度。 IE 不支持这些属性。它用 document....
  • IOS修改图片的像素(高度和宽度)

    千次阅读 2014-04-10 15:24:19
    UITabBarController,选好了一个item的图片,可是图片比较大,这个时候我们要修改它的像素     具体代码如下: UIImage *image = [ UIImage imageNamed : @"imageMain.png" ];  // 给 image 个...
  • //字符串高度、宽,行数,及字符串本身 public struct hhString { public string str; //处理后的字符串 public int hSnumber; //共有几行(插入多少个断行符) public float width;...//处理后的字符串
  • 1、后台数据表在设计的时候,对于每张图片,没有记录其宽度和高度的像素值。 2、图片的宽度和高度有不同的size,比如,A类型的图片是700*500像素,B类型的图片是700*1000像素 3、在前台有一块700*500像素的固定...
  • js获取字符串像素宽度

    千次阅读 2020-03-26 23:41:46
    js本身是不提供这种接口的,但是可以知道,行内标签如span的宽度在不设置边距等参数的情况下,标签对应元素的宽度就是内容的宽度,因此,可以使用span标签来获取字符串对应的宽度 示例代码 getTextWidth(str,...
  • 1、Android获取屏幕宽度的几种方法: //1、通过WindowManager获取 DisplayMetrics dm = new DisplayMetrics(); int heigth = dm.heightPixels;// 表示屏幕的像素高度,单位是px(像素) int width = dm....
  • 在我们采用GDI+画控件的时候总是需要动态的计算字符串的长度和高度,否则对齐方式会显得无效。下面就介绍下具体的方法。  /// ...采用上面的方法得到的字符串高度和宽度信息能够最好的匹配绘制。
  • js动态获取图片的宽度和高度像素

    万次阅读 2011-06-01 18:21:00
    1、后台数据表在设计的时候,对于每张图片,没有记录其宽度和高度的像素值。 2、图片的宽度和高度有不同的size,比如,A类型的图片是700*500像素,B类型的图片是700*1000像素 3、在前台有一块700*500...
  • //获取控件的宽度和高度的像素值的四种方法// public void getWidthAndHeight_1(View view) { int w = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); int h = View.MeasureSpec....
  • js获取精确宽度/高度(带小数位像素)

    千次阅读 2017-11-09 11:59:12
    问题:用jquery获取div等块级元素的宽高时不能精确获取,只能得到整数部分像素,不能获取小数位px。请看下面事故:<!DOCTYPE html> , initial-scale=1.0
  • 像素 字体宽度之间的转换:9pt=12px

    千次阅读 2007-05-26 14:26:00
    像素 字体宽度之间的转换:9pt=12px
  • 设置和获取RelativeLayout高度和宽度

    万次阅读 2011-08-11 16:00:49
    获取高度和宽度 RelativeLayout r = (RelativeLayout ) findViewById(...); r.getLayoutParams().height r.getLayoutParams().width 设置高度和宽度 R
  • 网页的宽度是采用百分比还是像素
  • table设置宽度

    万次阅读 2017-02-22 21:18:12
    遇到一个表格不能设置宽度(table有宽度,有一两列需要设固定大小的宽度并希望看到展现出来的宽度值与设定的一样,其他的列则可以根据剩余宽度自动填充,但是显示出来的宽度比实际设置的值多了几个像素)这个问题,...
  • 读取图像像素,并保存到二维数组中。图像高度和宽度不是4的倍数 IplImage* src= cvLoadImage("E:\\tupian\\289011.jpg", 0); //导入图 \289011.jpg int width = src->width;//图片宽度 int height = src->...
  • C#中如何获取一个字体的宽度值(像素单位) 是不是这个意思 private void button1_Click(object sender, EventArgs e) { Graphics g = this.CreateGraphics(); SizeF sizeF = g.MeasureString("A", new Font...
  • 如何设置对话框的宽度和高度

    万次阅读 2012-12-05 17:24:46
    // 宽度设置为屏幕的0.8 dialog.show().getWindow().setAttributes(p); /* 方法2: * 获取对话框的窗口对象及参数对象以修改对话框的布局设置, * 可以直接调用getWindow(),表示获得这个Activity的Window * ...
  • GDI+获取字符串实际的输出像素值(高度和宽度) 折腾了一个小时..Orz,抛弃CStatic,还是自己画来的自由。 简单来说就是调用Graphics对象的MeasureString函数,下面是一个简单的例子 //创建Graphics对象 CPaintDC...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 192,272
精华内容 76,908
关键字:

如何设置像素高宽度