PhotoImportDialog hoge = new PhotoImportDialog(); hoge.Open(); if(CommonDialogState.Finished == hoge.State && CommonDialogResult.OK == hoge.Result) { Image image = new Image(hoge.Filename); image.Decode(); image.SaveAs(@"/Documents/test.jpg"); hoge.Dispose(); }
ボタンのイベントハンドラに上記を書きました。
PC上では上手く動作するのですが実機では画像の選択を待たずにOpenより後の動作をしてしまうので上手くいきません。
これについては下記参考2を参考にしてください。
フォーラムでPlayStationの方にご回答をいただきましてとりあえず動くコードを書くことが出来ました。本当に助かりました。
回答をもらってPhotoImportSampleが読みやすくなったこと読みやすくなったこと。
Select_Startをtrueにすると開始
public static bool Select_Start{get;set;} private static PhotoImportDialog Select = null;
Updateに記述
bool isDialogOpened = (null != Select); if (!isDialogOpened && Select_Start) { Select = new PhotoImportDialog(); Select.Open(); Select_Start = false; } if (isDialogOpened) { if (CommonDialogResult.OK == Select.Result && CommonDialogState.Finished == Select.State) { OnDialogClosed(Select.Result); } }
private static void OnDialogClosed(CommonDialogResult result) { if (result == CommonDialogResult.OK){ UpdatePhotoImage(); } if (null != Select){ Select.Dispose(); Select = null; } } private static void UpdatePhotoImage() { using(Image image = new Image(Select.Filename)){ //画像処理 image.Decode(); image.Export("PSM","001.jpg"); } }