土曜日, 8月 27, 2022

Visual Studio Basic_25 
pixel, mm, dpiの関係計算機

今回はPhotoshopで・・・
解像度とpixelからサイズ(mm)を求め、解像度とサイズ(mm)からpixelかを求めるプログラムです。単なる四則演算で解決します。

画面設計はこんな感じです。Labelの順番がグチャグチャなのは、設計なしで作成した結果で特に意味はありません。

ソースの
「-----------------」は区切り線なので記述の必要はありません。
青字は自動入力部分で修正の必要はありません。 黒字が入力部分です。 赤字はコメント文なので記述の必要はありません。

--------------------------

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

  'W_px, H_px を Decimal宣言

  'TextBox3~5のどれかがブランクならLabel11に

  '「pixelとdpiを入力してくださいを表示

        Dim W_px, H_px As Decimal

        If TextBox3.Text = Nothing Then

            Label11.Text = "mmとdpiを入力してください"

            Exit Sub

        End If

        If TextBox4.Text = Nothing Then

            Label11.Text = "mmとdpiを入力してください"

            Exit Sub

        End If

        If TextBox5.Text = Nothing Then

            Label11.Text = "pixelとdpiを入力してください"

            Exit Sub

        End If

  'Label11をリセット。

  'pixel=長さ[mm] × 解像度[dpi] ÷ 25.4より

  'TextBox1とTextBox2に計算結果を整数で表示。

        Label11.ResetText()

        W_px = Val(TextBox4.Text) * Val(TextBox3.Text) / 25.4

        H_px = Val(TextBox5.Text) * Val(TextBox3.Text) / 25.4

        TextBox1.Text = Format(W_px, "0")

        TextBox2.Text = Format(H_px, "0")

    End Sub

--------------------------

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

  'W_mm, H_mm を Decimal宣言

  'TextBox3~5のどれかがブランクならLabel11に

  '「mmとdpiを入力してくださいを表示

        Dim W_mm, H_mm As Decimal

        If TextBox1.Text = Nothing Then

            Label11.Text = "pixelとdpiを入力してください"

            Exit Sub

        End If

        If TextBox2.Text = Nothing Then

            Label11.Text = "pixelとdpiを入力してください"

            Exit Sub

        End If

        If TextBox3.Text = Nothing Then

            Label11.Text = "pixelとdpiを入力してください"

            Exit Sub

        End If

  'Label11をリセット。

  '長さ[mm] =pixel× 25.4÷解像度[dpi] より

  'TextBox4とTextBox5に計算結果を小数2桁で表示。

        Label11.ResetText()

        W_mm = Val(TextBox1.Text) * 25.4 / Val(TextBox3.Text)

        H_mm = Val(TextBox2.Text) * 25.4 / Val(TextBox3.Text)

        TextBox4.Text = Format(W_mm, "0.00")

        TextBox5.Text = Format(H_mm, "0.00")

    End Sub

--------------------------

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click

  'TextBox1、Label1〜Label5、Label11をリセット

        TextBox1.ResetText()

        TextBox2.ResetText()

        TextBox3.ResetText()

        TextBox4.ResetText()

        TextBox5.ResetText()

        Label11.ResetText()

    End Sub

--------------------------

    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click

  '終了

        End

    End Sub

End Class

--------------------------

起動直後のパレット

何も入力せずに[mmを求める]をクリックすると「pixelとdpiを入力してくださいが表示されます。デザイン面でLabel11のプロパティでFontColorを「Red」に設定しておきます。

何も入力せずに[pixelを求める]をクリックすると「mmdpiを入力してください」が表示されます。デザイン面でLabel11のプロパティでFontColorを「Red」に設定しておきます。

mmとdpiを入力して[pixelを求める]をクリックした結果。

pixelとdpiを入力して[mmを求める]をクリックした結果。

PictureSize_100
クリックするといきなりダウンロードが始まります。
実際のプログラム完成日は2022年8月8日です。
Windows版です。