App Designerの画​面上に画像追加する際​、画像フォルダを指定​する方法

21 visualizaciones (últimos 30 días)
mayu
mayu el 2 de Mzo. de 2023
Comentada: Hernia Baby el 7 de Mzo. de 2023
App Designerの画面上に画像を追加しようとしていますが、使い方がよくわかっておらず、うまくいかないので質問させていただきました。
マトラボの作業ファイルと同じ階層に画像を直置きした場合は一応読み込めたのですが、そうでなくimageフォルダを作成しその中に画像をまとめて呼び出ししたいと思っています(画像が増えてくるとフォルダ内がごちゃつくので)。
(*.mlappファイルの同階層にimageというフォルダを作成し、その中に画像を置いて呼び出したい)
画面左のコンポーネントライブラリから画像を追加して、
画面右側のImageSourceから画像を選択したところ、以下のエラーが出て追加できませんでした。
▼エラー内容
「アプリの編集時及びアプリの実行時には、imagesourceファイルがmatlabパス上になければなりません。app designerでファイルを使用する前に、apppathコマンドを使用してファイルをパスに追加してください」
▼ヘルプのImageのプロパティ
参考ソースがあったので
fig = uifigure;
im = uiimage(fig);
im.ImageSource = 'peppers.png';
これを流用して書けばいいのかと思いました。
ただ「ファイル名には、MATLAB® パス上のイメージ ファイル名、あるいはイメージ ファイルへの絶対パスを指定できます。」
と記載があったのですが、これは *.mlappファイルや、画像パスを絶対パスで書かないと指定できないということでしょうか。
また、アラートで「apppathコマンドを使用」とあるので、
▼ヘルプのapppathのページ
これもみていて、
「addpath(folderName1,...,folderNameN) は、指定されたフォルダーを現在の MATLAB® セッションにおける検索パスの最上部に追加します。」
とありましたが、上記いずれの場合もどこに書いたらいいのかわかりませんでした。
トリガーがあって画像表示とかでなく、ただ静的に表示したいので、プライベートプロパティの中に、下記のように書いてみましたが、
apppath('image');
「'(' では終了の ')' が欠落している可能性があり、'image/' での無効な構文の原因となります。」
と出てきてうまくいきませんでした。
プログラムの知識がないので初歩的な躓きだとは思いますが、もしわかる方がいらっしゃいましたらご教示いただけますと幸いです。
どうぞよろしくお願いいたします。

Respuestas (1)

Hernia Baby
Hernia Baby el 2 de Mzo. de 2023
サンプルを作成しました。
uigetfileで画像のパスを確認します。
そしてフルパスにしてEditFieldの中に格納します
[file,path] = uigetfile("*.jpeg","データを選ぶ");
app.EditField.Value = fullfile(path,file);
出力ボタンでImageSourceにパスを入れたら完成です。
app.Image.ImageSource = app.EditField.Value;
読み込むとこうなります(パスは隠しました)
  2 comentarios
mayu
mayu el 7 de Mzo. de 2023
ご返信おそくなってしまい申し訳ございません。
ファイルも作成・添付いただきましてありがとうございます!
記述いただいた内容拝読してさっと理解はできていないのですが、ファイル中身拝見させていただきますm(__)m
Hernia Baby
Hernia Baby el 7 de Mzo. de 2023
わからなければ手順お答えしますので遠慮せずどうぞ

Iniciar sesión para comentar.

Categorías

Más información sobre App Designer を使用したアプリ開発 en Help Center y File Exchange.

Productos


Versión

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!