Pictureに写真を入れ、それをマウスでクリックした時のその部分の色の名前をテキストボックスに表示するプログラムを作りたいのですがどんなプログラムを使えば良いのですか?初心者ですみません。よろしくお願いします。
Pointメソッドで色を取得して、値に応じた名前を返せばイイと思います。
つっても、どこから何処までを「赤」と呼ぶか、
とか考えなきゃならないと思いますが…。
色の名前って何種類くらい望んでいますか?
何種類もあると結構大変ですけど。。
あと、色情報取得範囲ってどのくらいでしょう?
ドット・インチ・ミリ・センチ色々ありますが。
できればもう少し、こうしたいという詳細をください。
nanashiさん、フォレストさん、レスありがとうございます。
どこまでを「赤」と呼ぶかその範囲をどのように決めるかは私も考えていたところです。
でもまずは最初にRGBの値がはっきりしている赤、青、緑、黒、白の5色くらいを表示出切ればと思っています。
念のため言っておきますが、
写真のような自然画には原色はほとんど含まれませんから、
「&HFF0000のみが青」みたいな判断をしていると
ほとんどのピクセルの色が「不明」になるのがオチではないかと。
一応こんな感じでRGBの取得は可能です。
ただ、みなさんがおっしゃっているように、
どこからどこまでを「青」とするかは、ばななさんが判断してください。
HTMLとかの参考書をみると、実際の色とRGBの値が書いてありますので
参考にしてみてはいかがでしょうか?
以降はPictureBoxをクリックしたときの色の取得コードです。
(RGBコードで取得)
始めにPictureBoxと画像を指定してください。
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim lngColor As Long
Dim strHexCode As String
'右クリックのみ通す
If Button = 1 Then
'ドットが何色かLongで取得
lngColor = Picture1.Point(X, Y)
'-1なら取得失敗
If lngColor <> -1 Then
'16進数に変換
strHexCode = Hex(lngColor)
'イミディエイトに表示
Debug.Print strHexCode
End If
End If
End Sub
これを実行するとイミディエイトにC0C0C0みたいな感じで表示されます。
ツイート | ![]() |