public SpiInput() { if (correspondingTypes == "") { if (spi.Length == 0) { return; } // 拡張子連結用 StringBuilder sb = new StringBuilder(); StringBuilder buf = new StringBuilder(); // あったらリストに追加。 for (int i = 0; i < spi.Length; i++) { using (SpiPicture si = new SpiPicture(spi[i])) { if (si.GetApiInfo() != ApiVersionInfomation._00IN) { continue; } buf.Append(si.GetCorrespondingType() + ";"); sb.Append(si.GetCorrespondingName() + "|" + si.GetCorrespondingType() + "|"); } } // 拡張子を連結します。 correspondingTypes = "開けるファイル (" + buf.ToString().Remove(buf.ToString().Length - 1) + ")|" + buf.ToString().Remove(buf.ToString().Length - 1) + "|" + sb.ToString().Remove(sb.ToString().Length - 1); } }
/// <summary>ファイルを読み込みます。</summary> public bool LoadFile(string file) { filename = file; if (spi.Length == 0) { // プラグインが一つもない場合はエラー表示 MessageBox.Show("プラグインがインストールもしくは、展開されていません。", "プラグインエラー", MessageBoxButtons.OK, MessageBoxIcon.Information); // だめだったのよ~ return(false); } try { for (int i = 0; i < spi.Length; i++) { // 一回ごとに破棄する方が効率がいいと思う。 using (SpiPicture si = new SpiPicture(spi[i])) { // プラグインが画像入力に対応しているか。 if (si.GetApiInfo() != ApiVersionInfomation._00IN) { continue; } // 入力画像がサポートされているか。 if (!si.IsSupported(file)) { continue; } // null値を確認するための一時バッファ Bitmap buf = si.GetPicture(file); // ぬるぽ if (buf == null) { return(false); } // 画像を32bitに変換 bmp = PluginUtils.ConvertBitmap(buf); // おk return(true); } } } catch { // プラグインエラー MessageBox.Show("プラグインで内部エラーが発生しました。", "プラグインエラー", MessageBoxButtons.OK, MessageBoxIcon.Warning); // だめだったのよ~ return(false); } // 正しく対応できなかった。 return(false); }