我有一个要求,要求与10×6,88厘米的图像。 我知道我不能简单地从cm转换为像素,导致一个像素大小取决于用户的显示分辨率。 我想知道是否有一种方法来调整图像的大小以厘米为单位。 (我需要保持图像扩展还如:不能将其转换为PDF或其它扩展名)以厘米C调整图像大小#
回答
这真的取决于其分辨率,用户将打印图像(以厘米大小几乎没有什么意义比其他当打印时)。如果用户想要打印,例如200 dpi,那么图像需要(10/2.54 * 200)(6.88/2.54 * 200)像素(需要2.54的分区才能在厘米和英寸之间转换)。所需的分辨率高度依赖于它是什么样的图像以及用户的质量要求。
所以只是说:“我想用Y厘米调整为X”并没有真正意义。
关于如何使实际调整大小,一旦你已经想通了图像的大小需要,this SO answer应包括您需要的代码示例。
不同意“以厘米为单位的尺寸除了打印时没什么意义”,尺寸以厘米为单位时,如果您必须查看与将要打印的尺寸相同的文档(例如,所见即所得设计器),则完美无缺。否则,最终会出现经典的WYSINWYG(你看到的并不是你所得到的),就像在微软报表设计器(SSRS)中一样。 – 2016-05-13 09:19:53
Fredrik在说什么: 我会拍摄一个漂亮的DPI,并要求图像的分辨率或更大(但宽高比相同),并且在导出/打印图像时,将图像调整为DPI使用其他程序/打印机...
这可能是如此简单:大多数图像存储在他们每英寸的像素数。找出图像每个维度的像素数量,并将其除以英寸数(从cm转换而来)。然后使用原始位,只需修改每英寸像素数的字段(或者更常见的是每英寸点数)。
所以你的图片需要是3.93“x 2.71”。如果您的图像是393px x 271px,则可以将dpi设置为100x100。如果您的图像是39px x 27px,则可以将dpi设置为10x10。
虽然可能你必须做一些调整大小,正如其他答案所解释的那样。 :)
图像文件格式,如JPG和TIFF具有EXIF header具有像的水平和垂直DPI信息。
因此,如果您获得具有此元数据的图像,则可以验证可打印的尺寸。
double DPC = Image_DPI * 0.393700787;
double widthInCm = Image_Width * DPC;
double heightInCm = Image_Height * DPC;
if (widthInCm <= 10 && heightInCm <= 6.88) // do stuff
如果您需要调整图像不能超过这些打印的尺寸,你可以做到这一点的其他方式,并计算DPI比例,让10cm以内X6.88厘米界尺寸W x H契合的图像。
其实,你在屏幕上图像的大小来区分,并且图像尺寸打印输出。
通常情况下,你会发现公式:
inches = pixels/dpi
所以如下:
pixel = inches * dpi
这是打印,其实。
对于显示器,将DPI替换为ppi,并且在那里。
对于那些(如我)不熟悉英寸:
inches = pixels/dpi
pixel = inches * dpi
1 centimeter = 0.393700787 inch
pixel = cm * 0.393700787 * dpi
这一例程将计算像素尺寸,使显示器上的图像显示的X厘米。
但是在打印机上,您并不那么容易,因为您无法像DPI那样容易地获得DPI(bmp.HorizontalResolution & bmp.VerticalResolution)。
public static int Cm2Pixel(double WidthInCm)
{
double HeightInCm = WidthInCm;
return Cm2Pixel(WidthInCm, HeightInCm).Width;
} // End Function Cm2Pixel
public static System.Drawing.Size Cm2Pixel(double WidthInCm, double HeightInCm)
{
float sngWidth = (float)WidthInCm; //cm
float sngHeight = (float)HeightInCm; //cm
using (System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(1, 1))
{
sngWidth *= 0.393700787f * bmp.HorizontalResolution; // x-Axis pixel
sngHeight *= 0.393700787f * bmp.VerticalResolution; // y-Axis pixel
}
return new System.Drawing.Size((int)sngWidth, (int)sngHeight);
} // End Function Cm2Pixel
使用率会是这样的:
public System.Drawing.Image Generate(string Text, int CodeSize)
{
int minSize = Cm2Pixel(2.5); // 100;
if (CodeSize < minSize)
CodeSize = minSize;
if (string.IsNullOrEmpty(Text))
{
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(CodeSize, CodeSize);
using (System.Drawing.Graphics gfx = System.Drawing.Graphics.FromImage(bmp))
{
gfx.Clear(System.Drawing.Color.Black);
using(System.Drawing.Font fnt = new System.Drawing.Font("Verdana", 12, System.Drawing.FontStyle.Bold))
{
double y = CodeSize/2.0 - fnt.Size;
gfx.DrawString("No Data", fnt, System.Drawing.Brushes.White, 5, (int)y, System.Drawing.StringFormat.GenericTypographic);
} // End Using fnt
} // End using gfx
return bmp;
} // End if (string.IsNullOrEmpty(Text))
...[Generate QR-Code]
return [Generated QR-Code]
}
- 1. c#图像调整大小
- 2. 在matplotlib中指定以厘米为单位的图形大小
- 3. 如何计算二进制图像中厘米,毫米的BLOB大小?
- 4. 在Java中调整图像大小以缩小图像大小
- 5. 控制调整大小时调整图像的大小c#
- 6. 间隔[40厘米; 80厘米]
- 7. 厘米到像素转换
- 8. 调整图像大小C#编程
- 9. 调整大小TIFF图像使用C#
- 10. C#图像大小调整 - 丢失EXIF
- 11. 调整图像大小Objective-C
- 12. C#图像自动调整大小
- 13. C# - 上传后调整图像大小
- 14. 调整C#中的图像大小#
- 15. 调整图像大小以适合div
- 16. 图像调整大小以适应JPanel
- 17. 调整图像大小以适应JLabel
- 18. 调整图像大小以适合Imageview
- 19. 调整图像大小以适合LinearLayout
- 20. 调整图像大小以exec和PHP
- 21. 调整图像大小以适合UIImageView
- 22. 图像未调整大小
- 23. 调整jpeg图像大小?
- 24. codeigniter图像调整大小
- 25. Phalcon图像调整大小
- 26. JavaFx图像调整大小
- 27. ckfinder图像调整大小
- 28. 图像调整大小Codeigniter
- 29. 调整图像大小。 。 。 。
- 30. 图像调整大小Java
可你只是图像分辨率去? – 2009-10-23 12:35:43
要澄清,图像大小取决于图像分辨率。当它显示在屏幕上时,应该明确缩放到设备分辨率(但通常没有)。有关详细信息,请参阅此处:http://www.atalasoft.com/cs/blogs/stevehawley/archive/2006/10/05/10954.aspx – plinth 2009-10-23 12:41:20