예제 #1
0
        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);
            }
        }
예제 #2
0
        /// <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);
        }