質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

2回答

1901閲覧

QRCodeのバイナリデータ変換

pon108

総合スコア19

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2021/07/31 18:44

前提・実現したいこと

DotNetBarcodeを使用して作成したQRCodeをPictureBoxに表示しています。

PictureBoxに表示されているQRコードをバイナリデータとして取得したいのですが
作成されたQRCodeはImageで取得できないのか
思ったように動きません。

どのようにすれば取得できますでしょうか。

該当のソースコード

VB

1Public Class Form1 2 3 Dim bc1 As System.DotNetBarcode = New System.DotNetBarcode 4 5 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load 6 7 bc1.Type = System.DotNetBarcode.Types.QRCode 8 bc1.PrintCheckDigitChar = True 9 10 End Sub 11 12 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 13 14 Me.PictureBox1.Refresh() 15 16 End Sub 17 18 Private Sub PictureBox1_Paint(sender As Object, e As PaintEventArgs) Handles PictureBox1.Paint 19 20 bc1.WriteBar(Me.TextBox1.Text, 0, 0, Me.PictureBox1.Size.Width, Me.PictureBox1.Size.Height, e.Graphics) 21 22 End Sub 23 24 Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 25 26 Dim img As Image 27 28 29 img = PictureBox1.Image '←変数の中身はnothing 30 31 ImgtoByte(img) 32 33 End Sub 34 35 Private Function ImgtoByte(ByVal img As Image) As Byte() 36 37 Dim b As Byte() 38 Dim imgconv As New ImageConverter 39 40 b = CType(imgconv.ConvertTo(img, GetType(Byte())), Byte()) 41 42 Return b 43 44 End Function 45 46End Class

補足情報(FW/ツールのバージョンなど)

開発
Visual Studio2019
VB.net

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/08/01 03:57 編集

回答欄に移動しました。
退会済みユーザー

退会済みユーザー

2021/08/02 03:36

質問者さん、無言ですが、回答がついてますのでそれらに対するフィードバックを返してください。役に立った/立たなかったぐらいはすぐにでも返せるのでは? 役に立たなかったならどこがダメだったかを書くとより期待に近い回答が出てくるかも。とにかく無言は NG です。
guest

回答2

0

ベストアンサー

PictureBoxに表示されているQRコードをバイナリデータとして取得したい

その意味が不明ですが、要するに Windows Forms アプリの PictureBox に画像を表示するところまではできていて、それを .jpg とか .png などのファイルとして保存したいということと理解してレスします。理解が違っていたらどう違うのかを書いてください。

DotNetBarcodeを使用して作成したQRCodeをPictureBoxに表示しています。

PictureBox に表示できていればそれから画像ファイルが取得できるはずです。その具体例を書いておきます。

以下の画像は、「DotNetBarcodeを使用して作成したQRCode」ではありませんが、Windows Forms アプリで計算したパターンを PictureBox (右側の白いボックス部分) に表示したものです。

イメージ説明

画像にある[Save(S)]ボタンのクリックで PictureBox に表示された画像を .jpg ファイルとして保存するコードを以下に紹介しておきます。(try - catch で Exception を catch してますが、そこは自分が無知な時代に書いたものゆえ参考にしないでください)

private void saveButton_Click(object sender, EventArgs e) { DialogResult result = saveFileDialog1.ShowDialog(); Bitmap bitmap = new Bitmap(pictureBox1.Width, pictureBox1.Height); Rectangle targetBounds = new Rectangle(0, 0, pictureBox1.Width, pictureBox1.Height); System.IO.Stream fileStream; if (result == DialogResult.OK) { try { // Image image = pictureBox1.Image; ではダメ。image は null になる pictureBox1.DrawToBitmap(bitmap, targetBounds); fileStream = saveFileDialog1.OpenFile(); bitmap.Save(fileStream, System.Drawing.Imaging.ImageFormat.Jpeg); fileStream.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message + "\n\nセーブに失敗しました。", "エラー", MessageBoxButtons.OK, MessageBoxIcon.Hand); } } }

結果は:

イメージ説明

投稿2021/08/01 01:45

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pon108

2021/08/02 18:54

回答が遅くなってしまい大変申し訳ございません。 回答していただいた内容をVBに変換して無事に思っていた動きをさせることができました。 ありがとうございました。
guest

0

最終的に何を得たいのか分かりませんが
PictureBoxに描画するのではなくBitmapに描画すればいいのではないでしょうか。
ちらっと検索しましたがbitmapに描画するサンプルは山ほどありましたよ

投稿2021/07/31 22:11

YAmaGNZ

総合スコア10222

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pon108

2021/08/02 17:24

回答が遅くなってしまい大変申し訳ございません。 回答で 「Bitmapに描画する」ということですが現在使用しているDotNetBarcodeで Bitmapに描画するということでしょうか。 検索してみたのですが検索方法が悪いのか思うような検索結果が得られませんでした。
YAmaGNZ

2021/08/02 22:09

PaintイベントのGraphicsを使うのではなく、BitmapからGraphicsを得て描画するサンプルが結構ありましたけどね
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問