VB6: получение размера изображения в пикселях

#vb6

#vb6

Вопрос:

Я поместил графическое поле в форму и загрузил в него некоторое изображение:

 View1.Picture = LoadPicture(App.Path amp; "sample2.bmp")
  

Когда я попытался получить ширину и высоту свойства Picture, полученные значения не указаны ни в пикселях, ни в твипах. Кто-нибудь знает, как определить размер изображения в пикселях в Visual Basic 6?

Комментарии:

1. В чем тогда был измерен размер? Вероятно, вы могли бы выполнить очень простое преобразование..

Ответ №1:

Они находятся в himetrics.

Использовать

 With View1
  MsgBox .ScaleX(.Picture.Width, vbHimetric, vbPixels)
  MsgBox .ScaleY(.Picture.Height, vbHimetric, vbPixels)
End With
  

Комментарии:

1. Большое спасибо! Это именно то, о чем я просил! Есть ли способ сделать это для изображения, хранящегося в переменной StdPicture?

2. @ezpresso: Используйте .ScaleX / .ScaleY методы отображаемого объекта, такие как Form или PictureBox . Не имеет значения, что изображение не исходит от объекта, к которому вы его масштабируете. Видите ли, параметры не зависят от разрешения экрана; когда вы преобразуете их в пиксели, зависящие от экрана, вы должны использовать объект, который может отображаться с этими параметрами, зависящими от экрана.

3. Спасибо! Мне просто интересно, к чему все эти сложности?! Почему Microsoft просто не могла предоставить нам возможность использовать пиксели?!

4. @ezpresso: Я могу предположить, что лучше иметь фактические, истинные размеры изображения, которые не зависят от различных типов дисплеев, на которых оно может отображаться. Пиксели бывают разных размеров и даже форм.

5. Или вы могли бы использовать WIA 2.0 вместо старого материала, встроенного в VB6.