Private Sub Button1_Click
CC.Show("image/*", "Choose image")
'CC.Show("audio/*", "Choose audio file")
End Sub
Sub CC_Result (Success As Boolean, Dir As String, FileName As String)
If Success = True Then
Dim TargetSize As Int =600 * 1024
Dim FileSize As Long = File.Size(Dir, FileName)
If FileSize > TargetSize Then
ResizeImageBasedOnMaxFileSize(xui.LoadBitmap(Dir, FileName), TargetSize, xui.DefaultFolder, FileName)
ImageView1.Bitmap = LoadBitmap(xui.DefaultFolder,FileName)
Else
ImageView1.Bitmap = LoadBitmap(Dir, FileName)
End If
Else
ToastMessageShow("No Success :(",True)
End If
End Sub
Private Sub ResizeImageBasedOnMaxFileSize (Img As B4XBitmap, MaxSize As Long, OutputFolder As String, OutputFile As String)'图片压缩算法
Dim Quality As Int = 100
Dim Size As Long = MaxSize + 1
Do While Size > MaxSize And Quality >= 10
Dim out As OutputStream = File.OpenOutput(OutputFolder, OutputFile, False)
Img.WriteToStream(out, Quality, "JPEG")
out.Close
Size = File.Size(OutputFolder, OutputFile)
Log($"Quality: ${Quality}%, Size: $1.0{Size / 1024}kb"$)
Quality = Quality - 5
Loop
End Sub