У меня есть требование, которое запрашивает изображение с размером 10 X 6,88 см. Я знаю, что я не могу просто преобразовать из cm в пиксели, так как размер одного пикселя зависит от разрешения экрана пользователя. Я хотел бы знать, есть ли способ изменить размер изображения, чтобы иметь этот размер в см. (Мне нужно также сохранить расширение изображения, например: не может преобразовать его в PDF или другое расширение)Изменение размера изображения в см C#
ответ
Это действительно зависит от того, в каком разрешении пользователь напечатает изображение (размеры в см не имеют никакого смысла, кроме при печати). Если пользователь хочет сделать печать, скажем, 200 точек на дюйм, тогда изображение должно быть (10/2,54 * 200) на (6.88/2.54 * 200) пикселях (для преобразования между cm и дюймами требуется деление с 2.54). Какая требуемая резолюция в значительной степени зависит от того, какой образ она представляет, и требований к качеству пользователя.
Так что просто сказать «Я хочу изменить размер до X на Y см» на самом деле не имеет смысла.
Для примера кода, как сделать фактическое изменение размера после того, как вы выяснили необходимый размер изображения, this SO answer должен покрыть ваши потребности.
Несогласие с «размерами в см не имеет смысла, кроме как при печати», размеры в cm имеют прекрасный смысл, когда вы должны просмотреть документ в том же размере, который будет напечатан (например, дизайнер WYSIWYG). В противном случае вы попадаете в классический WYSINWYG (что вы видите не то, что вы получаете), например, в Microsoft Report Designer (SSRS). –
Я бы взял хороший 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, что позволяет изображение размеры Ш х В приступе пределах 10 см х 6.88cm границ ,
На самом деле, вы должны различать размер изображений на экране и размер изображений на распечатке.
обычно, вы найдете формулу:
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 так же просто, как PPI (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. Изменение размера изображения C#
- 3. Изменение размера изображения C#
- 4. C# изменение размера изображения
- 5. Изменение размера изображения с C#
- 6. Изменение размера изображения SDL/C++
- 7. Изменение размера изображения в Python
- 8. Изменение размера изображения в C# - null исключение?
- 9. Изменение размера изображения программно в C#
- 10. Изменение размера изображения в ASP.NET C#
- 11. Изменение размера изображения в PIL
- 12. Изменение размера изображения ID3
- 13. Php Изменение размера изображения Увеличение размера изображения
- 14. Изменение размера изображения для Codeigniter Изменение размера только одного изображения
- 15. Изменение размера изображения с использованием C#
- 16. C# Изменение размера изображения - Losing EXIF
- 17. Изменение размера изображения ASP.NET
- 18. Изменение размера изображения IFrame
- 19. Изменение размера изображения
- 20. QML изменение размера изображения
- 21. Изменение размера карты изображения
- 22. Изменение размера растрового изображения
- 23. Динамическое изменение размера изображения
- 24. UIView Изменение размера изображения?
- 25. Изменение размера изображения эффективно
- 26. Изменение размера файла изображения
- 27. Изменение размера изображения Phalcon
- 28. Изменение размера изображения CSS
- 29. Изменение размера изображения JavaFx
- 30. Изменение размера изображения base64
вы можете просто пойти с разрешением изображения? –
Чтобы уточнить размер, размер изображения зависит от разрешения IMAGE. Когда он отображается на экране, должно быть явное масштабирование разрешения устройства (но обычно этого не происходит). См. Здесь для получения дополнительной информации: http://www.atalasoft.com/cs/blogs/stevehawley/archive/2006/10/05/10954.aspx – plinth