SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

UWPアプリ開発に必携のコンポーネントライブラリー「ComponentOne Studio」(AD)

WindowsアプリでバーコードやQRコードを簡単出力! BarCodeコントロールをWindows Forms/WPF/UWPで使ってみる

  • このエントリーをはてなブックマークに追加

画像ファイルに保存してみよう

 バーコードは画面に表示するだけでなく、いろいろと出力もしたいですね。まずは、画像ファイルとして出力してみましょう。

画像ファイルに出力したQRコード
画像ファイルに出力したQRコードの例

 画像データの扱いはプラットフォームごとに異なり、画像ファイルに保存する方法もプラットフォームごとにさまざまです。BarCodeコントロールでも、残念ながらプラットフォーム共通のコードとはいきません。

Windows Forms

 Windows FormsのImageクラス(System.Drawing名前空間)は、その画像をファイルに保存するためのSaveメソッドを持っています。そして、BarCodeコントロールは、表示しているバーコードの画像を返すImageプロパティを持っています。ですから、[画像を保存]ボタンのイベントハンドラーで、BarCodeコントロールのImageプロパティのSaveメソッドを呼び出せばいいです。

 ファイル保存ダイアログを出してユーザーに保存先を指定してもらい、そこに画像データを書き出すコードは次の通りです(Form1.csファイル)。

画像ファイルに保存する(Windows Forms)
private void SaveButton_Click(object sender, EventArgs e)
{
  // ファイル保存ダイアログを出す
  var saveFileDialog = new SaveFileDialog();
  saveFileDialog.Filter = "PNG Image|*.png";
  saveFileDialog.Title = "Save an Image File";
  saveFileDialog.DefaultExt = ".png";
  saveFileDialog.FileName = "BarCodeControlSample.png";
  saveFileDialog.InitialDirectory
    = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
  saveFileDialog.ShowDialog();
  if (!string.IsNullOrEmpty(saveFileDialog.FileName))
  {
    // 画像をファイルに保存する
    this.BarCode1.Image.Save(saveFileDialog.FileName, ImageFormat.Png);
  }
}

WPF

 WPF用のBarCodeコントロールは、画像データをストリームに保存するSaveメソッドを持っています。

 ファイル保存ダイアログを出してユーザーに保存先を指定してもらい、そこに画像データを書き出すコードは次の通りです(MainWindow.xaml.csファイル)。

画像ファイルに保存する(WPF)
private void SaveButton_Click(object sender, RoutedEventArgs e)
{
  // ファイル保存ダイアログを出す
  var saveFileDialog = new SaveFileDialog();
  // ……省略(Windows Formsと同じ)……
  if (saveFileDialog.ShowDialog() ?? false)
  {
    // 画像をファイルに保存する
    using (var st = saveFileDialog.OpenFile())
    {
      this.BarCode1.Save(st, C1.WPF.BarCode.ImageFormat.Png);
    }
  }
}

UWP

 UWP用のBarCodeコントロールは、画像データをストリームに保存するSaveAsyncメソッドを持っています。

 ファイル保存ダイアログを出してユーザーに保存先を指定してもらい、そこに画像データを書き出すコードは次の通りです(MainPage.xaml.csファイル)。SaveAsyncメソッドは非同期メソッドなので、非同期処理の完了後に再開するためのawaitキーワードが呼び出し部分に、asyncキーワードがメソッドのシグネチャに必要です。

画像ファイルに保存する(UWP)
private async void SaveButton_Click(object sender, RoutedEventArgs e)
{
  // ファイル保存ダイアログを出す
  var savePicker = new FileSavePicker();
  savePicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
  savePicker.FileTypeChoices.Add("PNG ファイル", new List() { ".png" });
  var file = await savePicker.PickSaveFileAsync();
  if (file != null)
  {
    // 画像をファイルに保存する
    using (var st = await file.OpenStreamForWriteAsync())
      await this.BarCode1.SaveAsync(st, C1.Xaml.BarCode.ImageFormat.Png);
  }
}

次のページ
ExcelファイルやPDFファイルに出力してみよう(UWP編)

関連リンク

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
UWPアプリ開発に必携のコンポーネントライブラリー「ComponentOne Studio」連載記事一覧
この記事の著者

biac(ばいあっく)

HONDA R&Dで自動車の設計をやっていた機械屋さんが、技術の進化スピードに魅かれてプログラマーに。以来30年ほど、より良いコードをどうやったら作れるか、模索の人生。わんくま同盟の勉強会(名古屋)で、よく喋ってたりする。2014/10~2019/6 Microsoft MVP (Windows Devel...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10975 2019/11/10 21:54

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング