スキップしてメイン コンテンツに移動

投稿

1月, 2023の投稿を表示しています

CapCap V0.9.2.1 リリース

  CapCapのV0.9.2.1をリリース Home 主な変更内容 - Clipboardモード(TexTra Clipboard連携)に対応 - ヘルプ表示に対応 Clipboardモード(TexTra Clipboard連携) トランスレータのモードを Clipboard に設定することでTexTra Clipboardと連携できるようになりました。 「TexTra Clipboard」はクリップボードにコピーしたテキストを翻訳をするアプリケーションです。「みんなの自動翻訳@TexTra」を利用して翻訳を行っており、国立研究開発法人情報通信研究機構(NICT)で開発されています。 高精度な自動翻訳が行えます。是非とも活用してください。 懸念としてはクリップボードを介して連携を行う都合上、複数の字幕で同時に翻訳を行うと翻訳に時間がかかる、場合によってはタイムアウトするといったことが考えられます。 ヘルプ表示 メニューからヘルプを選択するとヘルプファイルが表示されるようになりました。 従来からファイル自体は存在したのでブラウザで確認できましたが、ソフトウェアからも表示できるようになりました。

ウィンドウの非表示を知りたい

瞬間的にウィンドウを非表示化したい 個人的な結論 非表示にこだわらない、アクティブウィンドウが変わってもよい WindowStateを使ったウィンドウの最小化で対応 絶対非表示、アクティブウィンドウ変わってほしくない Visibilityを使った非表示化とマジックナンバー的wait --- どうすればウィンドウを非表示できるか 少し調べるとVisibilityプロパティをHiddenやCollapsedにすれば非表示出来ることは行き着くのだが、本当に非表示になったことを確認する方法が出てこない。 IsVisibleプロパティがそれっぽい。具体的には以下の記述がそれっぽい。 IsVisible true if the element is visible; otherwise, false. Visibility Setting this property affects the value of IsVisible, which in turn may raise the IsVisibleChanged event.  IsVisibleがそれっぽいと言ったな、あれは嘘だ 説明だけみるとそうに間違いないのだが、UIが絡むからかそんなことはない。 例えば、スクリーンキャプチャする瞬間だけ非表示みたいな処理をしたい場合、CopyFromScreenの実行をIsVisibleChangedが発生するまで実行を遅延すれば良いように思える。 Visibility = Visibility.Collpsed; …// ここでIsVisibleChangedの発生を待つ graphics.CopyFromScreen(…); … Visibility = Visibility.Visible; ところがどっこいやってみるとウィンドウは非表示になっておらず、ばっちりキャプチャされてしまう。デバッグモードで止めて確認して何度がっかりしたことか。 問題設定的には以下と同じである https://stackoverflow.com/questions/39068778/wpf-how-to-run-code-immediately-after-a-window-is-hidden 見えなきゃ良いんでしょ じゃあ無理じゃんとなるんだけど、一応方法がないわけではない。非表示は諦めて最

CapCap V0.9.2.0 リリース

CapCapのV0.9.2.0をリリース 主な変更内容 - グローバルホットキー機能に対応 - 日本語表記に対応 - Overlapキャプチャに対応 - 設定ウィンドウのちらつきなど挙動を改善 グローバルホットキー機能 ホットキーを使用して字幕の新規作成や更新などが行えるようになりました。 とても便利です。ただし設定したキーは他のアプリケーションで使用できなくなるためご注意ください。 字幕は複数作成可能でホットキーで更新するとすべての字幕が更新されます。楽しい。 Ovarlapキャプチャ 字幕をキャプチャ範囲に重ねて表示可能になりました。 参考画像だと背景が透明ですが不透明にすれば翻訳後の結果だけが表にくるので、「分けがわからない外国語よりは分けがわからない日本語を読みたい」みたいなクレイジー字幕野郎の要望にも対応可能になりました。

JsonSerializerでシリアライズしたい

System.Text.JsonのJsonConverter 事の始まり 意外と何もしなくてもシリアライズ・デシリアライズ出来てしまうので、わざわざConverterを用意する機会がなかったりもする。 ただ、たまにException!とか言ってくるのでそんなときはJsonCoverterを書いてあげる必要がある。昔のStack Overflowを見ていると諦めて文字列でシリアライズしろよとかあって、チビリそうになるけど、今はJsonConverterがあるのよ。 https://learn.microsoft.com/ja-jp/dotnet/standard/serialization/system-text-json/converters-how-to?pivots=dotnet-7-0 FontFamilyでコケたので確認してみるとTypeConverterとかはあったりするので、string<->class変換は出来るけど、JsonConverterが設定されていないとJsonSerializorでは変換してくれないみたい。 サンプル とりあえず簡単にJsonConverterを書いてみた。 public class FontFamilyJsonConverter : JsonConverter<Fontfamily> { public override FontFamily Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) => new (reader.GetString()); public override void Write(Utf8JsonWriter writer, FontFamily value, JsonSerializerOptions options) => writer.WriteStringValue(value.Source); } 例外処理とかはないので自分でシリアライズ・デシリアライズするのが前提だけど、とりあえずは動く…と思う(私の環境だとWriteしか呼ばれてないので…)。 JsonConverterを知らないときは例外が発生するプロパ

CapCap v0.9.1.1 リリース

CapCapのV0.9.1.1をリリース 変更は主に不具合の修正です。 - 設定変更後に字幕に設定内容が反映されるように修正 - 字幕の初期位置処理を変更 - キャプチャエリアがすべての字幕で共通となっていたのを修正 複数の字幕をリピートで使った場合や使用中に字幕の設定を変更した場合などに起こっていた意図しない動作を修正しました Home

CapCap v0.9.1.0 リリース

CapCapのV0.9.1.0をリリースします。 変更内容は以下のとおりです。 - 画像加工処理を追加 - コンフィグファイルの構成を変更 - 軽微な不具合を修正 シンプルな画像加工処理を実装しました。 そのままでは認識されない文字でも画像処理で認識できるようになるかもしれません。