簡體   English   中英

在VB6中縮放/調整StdPicture的大小

[英]Scale / Resize StdPicture in VB6

我四處張望,竭盡全力試圖弄清楚該怎么做。 我已經看過XtremeVBTalk.com和互聯網的其余部分,了解如何調整該死的StdPicture的大小!

有誰知道如何做到這一點? 這有可能嗎?

提前非常感謝您。 我希望不使用任何類型庫等,因此,如果解決方案中提供了該類型庫,我認為我將無法使用它。

我根本沒有使用圖片框控件。

說我有以下函數頭,並傳入了StdPicture:

Private Function EncodeImageToBase64(ByRef Image As StdPicture) As String

然后,我打算將StdPicture編碼為base64時使用以下聲明:

  Dim xmlDoc As DOMDocument60
  Dim xmlNode As MSXML2.IXMLDOMElement
  Dim bColor() As Byte
  Dim bMask() As Byte
  Dim bImage() As Byte
  Dim lCrcTable() As Long
  Dim lWidth As Long
  Dim lHeight As Long
  EncodeImageToBase64 = vbNullString

  If Image Is Nothing Then
    Exit Function
  End If

  Call CRCTable(lCrcTable)
  Call Icon2Arrays(Image, bColor, bMask, lWidth, lHeight)
  If Not CreatePngByteArray(bImage, lWidth, lHeight, bColor, bMask, lCrcTable) Then
    Debug.Assert False
    Exit Function
  End If

但是,在調用之前,我想將圖像的寬度和高度減少一半。 我該怎么辦? CreatePngByteArray僅支持16x16 PNG,而我使用的是32x32,因此我想將其縮減以傳遞它們的斷言。

好的,我花了很多我本來沒有的時間,因為我不知道一開始的答案,但是我仍然對找出潛在的解決方案感興趣。

以下答案是我對您要嘗試做的事情的理解,但可能不是問題本身的答案,因此很可能會認為這是錯誤的。

所以,這就是我的想法。 您將需要使用IPictureDisp對象而不是 StdPicture對象。 即使您確實不需要,也需要使用PictureBox控件。

創建一個新項目。 添加表單,或打開現有表單(如果提供的話)。 將窗體的ScaleMode設置為像素。 在窗體上添加一個PictureBox控件。 將PictureBox控件的AutoRedraw屬性設置為'True',將該控件的BorderStyle屬性設置為'None',並將該控件的Height和Width屬性分別設置為16個像素。 將以下代碼添加到窗體中,並修改要調整大小的圖像的位置和類型,然后將其保存到以下位置:

Private Sub Form_Load()

    Dim TestPic As IPictureDisp
    Set TestPic = LoadPicture("C:\Users\Your Name\Desktop\image.gif")
    With TestPic
        .Render Picture1.hDC, 0, 16, 16, -17, 0, 0, .width, .height, 0
    End With
    SavePicture Picture1.Image, "C:\Users\Your Name\Desktop\image2.bmp"

End Sub

圖像可以以Visual Basic 6支持的任何類型(.bmp,.cur,.gif,.ico,.jpeg或.jpg和.wmf)開頭,但必須始終以位圖格式保存。 請注意,Visual Basic 6根本不支持PNG文件格式,因此您將無法使用任何VB6函數打開或創建PNG文件。

我會對其他人提出的其他解決方案感興趣。

編輯:固定尺寸。

您是在PICTUREBOX控件內部還是在IMAGE CONTROL內部? 因為如果我沒記錯的話,它具有STRETCH屬性,可以將圖像自動調整為容器

@Zaf Khan擊敗了我。 我在PictureBox上也有類似的東西。 在行為下,我將SizeMode設置為StretchImage,然后在加載圖像時像這樣

LoadWebImageToPictureBox(ImagePreview, SelectedFile)

它自動適合。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM