ชุมชนคนรักภาษาเบสิค - Visual Basic Community

 ลืมรหัสผ่าน
 ลงทะเบียน
ค้นหา
ดู: 3140|ตอบกลับ: 1

[VB.NET] การตรวจสอบรูปแบบไฟล์ภาพ อ่านขนาดไฟล์และแสดงสเกลของภาพ

[คัดลอกลิงก์]

308

กระทู้

498

โพสต์

5971

เครดิต

ผู้ดูแลระบบ

ทองก้อน ทับทิมกรอบ

Rank: 9Rank: 9Rank: 9

เครดิต
5971




เวลาที่เราให้ผู้ใช้เบราซ์ไฟล์ภาพ แม้ว่าจะมีฟิลเตอร์ หรือการกรองด้วยนามสกุลไฟล์ เช่น BMP, JPG หรือ PNG เอาไว้ แต่ในบางครั้งผู้ใช้งานกลับไปใช้ Wildcard *.* หรือการแสดงผลทุกๆไฟล์ออกมา แล้วเลือกไฟล์ที่ไม่ใช่ไฟล์ภาพ แม้ว่าเราจะใช้ Try Catch มาดักข้อผิดพลาดเอาไว้ มันจะแจ้ง Out of Memory ซึ่งตัวผู้ใช้เองก็ไม่รู้ว่ามันคืออะไร หรือแม้แต่ตัวเราก็อาจจะเข้าใจไปว่าเกิดการเลือกไฟล์ที่มีขนาดใหญ่เกินไป อย่ากระนั้นเลย เราควรจะทำตรวจสอบก่อนว่าไฟล์ที่ผู้ใช้เลือกนั้น มันเป็นไฟล์ภาพหรือไม่ น่าจะดีกว่าครับ ...


มาดูโค้ดฉบับเต็มกันเถอะ ...
  1. Public Class frmValidImage

  2.     Private Sub frmValidImage_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
  3.         Label1.Text = ""
  4.         Label2.Text = ""
  5.     End Sub

  6.     ' / --------------------------------------------------------------------------
  7.     Function IsValidImage(filename As String) As Boolean
  8.         Try
  9.             Dim img As System.Drawing.Image = System.Drawing.Image.FromFile(filename)
  10.         Catch generatedExceptionName As OutOfMemoryException
  11.             Return False
  12.         End Try
  13.         Return True
  14.     End Function

  15.     Private Sub btnBrowse_Click(sender As System.Object, e As System.EventArgs) Handles btnBrowse.Click
  16.         Dim dlgImage As OpenFileDialog = New OpenFileDialog()
  17.         '/ Open File Dialog
  18.         With dlgImage
  19.             .Title = "Select images"
  20.             '/ Image types.
  21.             .Filter = "Images types (*.jpg;*.png;*.gif;*.bmp)|*.jpg;*.png;*.gif;*.bmp"
  22.             .FilterIndex = 1
  23.             .RestoreDirectory = True
  24.         End With
  25.         '/ Select OK after Browse ...
  26.         If dlgImage.ShowDialog() = DialogResult.OK Then
  27.             '/ Valid Images.
  28.             If Not IsValidImage(dlgImage.FileName) Then
  29.                 MessageBox.Show("The file you selected is not an image file.", "Report Status", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
  30.                 Return
  31.             End If
  32.             '/ Get file size.
  33.             Dim info As New System.IO.FileInfo(dlgImage.FileName)
  34.             Label1.Text = "File Size: " & Format(info.Length / 1024, "#,##0.00") & " KB."
  35.             '/ Get the scale.
  36.             Dim img = Image.FromFile(dlgImage.FileName)
  37.             Label2.Text = "Width x Height : " & (Format(Val(img.Width.ToString), "#,##0") & " x " & Format(Val(img.Height.ToString), "#,##0")) & " Pixels."
  38.             '/
  39.             picData.Image = Image.FromFile(dlgImage.FileName)
  40.         End If

  41.     End Sub

  42. End Class
คัดลอกไปที่คลิปบอร์ด



ดาวน์โหลดโค้ดต้นฉบับ VB.NET (2010) ได้ที่นี่ ...

ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง

คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? ลงทะเบียน

x
สิ่งที่ดีกว่าการให้ คือการให้แบบไม่มีที่สิ้นสุด

0

กระทู้

58

โพสต์

10

เครดิต

Member

Rank: 2

เครดิต
10
โพสต์ 2022-10-25 15:33:19 | ดูโพสต์ทั้งหมด

ขอบคุณครับ
ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | ลงทะเบียน

รายละเอียดเครดิต

ข้อความล้วน|อุปกรณ์พกพา|ประวัติการแบน|G2GNet.com  

GMT+7, 2024-3-29 00:47 , Processed in 0.114661 second(s), 4 queries , File On.

Powered by Discuz! X3.4, Rev.62

Copyright © 2001-2020 Tencent Cloud.

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้