カテゴリー別アーカイブ: 日々の日記

夏至 -2021年6月21日-

 昨日ですが、夏至でした。
「最近日が出てる時間が長すぎない???」って思ったらそれは夏至近くです。
この時期になると1年前の同じ時期を思い出し、1年ってあっという間だなぁと考えてしまいます。
夏至以外にも1年前のことを思い出すタイミングとしては、年末年始、桜、夏の暑い日、お盆、クリスマスくらいでしょうか…

MultiWallpaper 3.1を公開しました

ver.3.1 2021/04/14 解像度が非常に大きい時にメモリ不足になる不具合を修正。(64ビット環境の場合は64ビットで動作するようにしました。32ビット環境の場合は不具合修正されていません)

 というわけで、64ビット化しました。
先日対応したはずのHiDPI環境で壁紙適用すると例外になるというご報告をいただいて調べていましたが、どうもC#(.NET Framework)のBitmapクラスの作成でエラーが発生している様子。
どうやら最大メモリサイズが32ビットだと1GB、64ビットだと2GBとなっているようなので、そこが引っかかっていたようです。
とりあえず64ビットで動作させるという暫定的な対策をしてバージョンアップしました。
参考:【C#】Bitmapクラスの最大サイズは?

 暫定的にといったのは、上限が2倍になっただけでしかないためです。
また、動作するとしても2GBのメモリを消費するのは何とかしたいです。
今のMultiWallpaperの動作としては、すべてのモニタを合わせた分の大きい画像を作成して、貼り付けたい画像を拡大縮小して貼り付けて、必要な部分だけ切り出しています。
MultiWallpaperを公開した2006年当時は4K等のHiDPIモニタなんてほぼ存在していなくて、そのような動作でも何GBもメモリを使うことはなかったのですが…
画像処理の知識があるわけではないので、思いつく対策としてはモニタごとに画像を作成して、貼り付けたい画像を拡大縮小することです。
できなくはなさそうですが、1枚の画像を全モニタに広げるときの位置の計算が面倒臭そうです…

 かっこ内の文章についてですが、C#でAnyCPUでビルドすれば64ビット環境では64ビットで動作し32ビット環境では32ビットで動作する(はず)なので、64ビット環境では上記の対策が効きますが、32ビット環境では今回の対策は効いていないですということです。

2021年度突入

 2021年も4月に入り、2021年度に入ってしまいました。
つまり、もう2021年の1/4が終わってしまいました…早すぎます…
あけおめ記事で2021年は何かをやったり、自分が変わったと思える年にしたいと書きましたが、1/4が終わった時点での点数を付けると60点ぐらいでしょうか…
これから加速していきたいと思います。

Simple MultiWallpaper Changerのメンテナンスを行いました

 先日MultiWallpaperのメンテナンスを行い、何か忘れているなぁと思ったらSimple MultiWallpaper Changerというソフトも公開していました。
MultiWallpaper同様に、高dpi環境でのUI表示に対応しました。
壁紙設定も問題なく動いていることを確認しましたが、ちょっと不安がありますので、おかしいところがありましたら連絡いただけると嬉しいです。

Faviconのメンテナンスを行いました

 昨日の記事の続きです。

 Faviconを今どきの解像度にアップデートしました。
といってもデザインは変えずに解像度を大きくしただけですが、Faviconが大きく表示される場合にボケずにしゃっきりと表示されるようになったはずです。
デザインが変わってなくて区別が付かないので、高解像度版にはこっそりとG-SCE.COMという文字を入れていますが、16×16や32×32で表示されていたら分からないと思います。

Faviconのメンテナンスを行いたい

 先日WEBサイトのメンテナンスを行ったときに思ったのですが、Faviconもアップデートする必要がありますね。
最近のモニタの高解像度化によるだけでなく、ショートカットアイコンや、ブラウザのよく使うサイトのアイコンなどに使われるようになり、高解像度なFaviconが必要となっているようです。
一方、本サイトのFaviconは未だに解像度16×16です。
2005年に作成した時から15年以上使い続けていますので仕方ない…とは言ってられないので、更新したいなぁと思っています。

MultiWallpaperのメンテナンスを行おうと思ったけれど…3

 昨日の記事の続きです。

 昨日の時点では

壁紙設定の高dpi環境対応は、とりあえず試している環境では動くようになりました。
メインディスプレイが高dpi+サブディスプレイが96dpiという環境です。
サブディスプレイが高dpiだったり、スケーリング比率の違う高dpiディスプレイ同士だったり、ディスプレイ3枚以上だったりといった環境でどうなるかはまだ謎です。

と書いてましたが、環境を準備してみて確認したところ、サブディスプレイが高dpiだと正常に動作しませんでした。
一方、メインディスプレイのみ高dpiであれば、ディスプレイ3枚でも問題なさそうでした。

 どうもサブディスプレイが高dpiだとおかしくなるというよりは、メインディスプレイが高dpiの状態ですでに正しく情報を取得できていない様子。
困ったなぁと思っていてふと思いついてWPFで作りかけていたMultiWallpaperを試したところ、こちらだとサブディスプレイが高dpiでも問題なく動いているような…?
WinFormsとWPFの違いで変わるのか? WinForms版の方にミスがあるのか? の原因は分かりませんが、やる気が無くなったのは確かなので今日はここまで…

あけましておめでとうございます

 2021年もよろしくお願いします。

 去年のあけおめ記事は何を書いたかなと思ったら、4月1日に↑の文章一行だけでした。
2020年は新型コロナで大変な年でした。
未来からこの記事を読んだときに、2020年が一番ひどかったと思うのか、2020年はまだマシだったと思うのか…どうなることやらです。
コロナのせいというわけではないですが、2020年は個人的にも何もすることなく過ごしてしまったので、2021年は何かをやったり、自分が変わったと思える年にしたいです。