月別アーカイブ: 2021年9月

mozu

今日の、いや昨日の五条川。

月曜の夕方に投稿しようとしたらサーバーが落ちていた。
十年以上さくらを利用しているけど障害発生メールが届いたのは初めて。
まあ復旧したのでそれはよくて夜勤明けの今頃ですが。

kosamebitaki

コサメビタキ、今回は綺麗に撮れた。
いや桜の枝は掛かってしまったけど。

mozu1

モズ、やはり枝が。
久々に見たけど夏はどこにいっていたのやら。

mozu2

モズ、だから枝が邪魔。
メスだし上と同じ場所にいたので多分夫婦。

mozu3

別の所でまたしてもモズ、今日はあちこちで鳴いている。
冬に向けた縄張り作り争いの真っ最中なのかな。

samebitaki

サメビタキ、だと思う。
目の前にある白線の下が暗色なので多分。

コサメビタキ・エゾビタキ・サメビタキの識別

思うんだけど当のヒタギ達は見分けられているんだろうか?
キビタキとルリビタキのメスなんてまったく違いが解らないし。
人間には解らない要素があるんだろう、知らんけど。

今後ブログ用写真は Lightroom 書き出しを(小)で。
これって切り出しでサイズダウンしたものより容量は小さくなるのね。
(小)でも拡大しないかぎり原寸との違いが解らん。

どうでもいいけど筆者は Python では鈴菌ネタを使っているけど。
カメラネタにし変更したほうがいいかな、マジどうでもいいけど。

GTK4 Clipboard (String)

GTK4 で Clipboard を使うテスト。
文字列のコピペはできた、ただし自分のインスタンス内のみで。

#!/usr/bin/env python3

import gi
gi.require_version('Gtk', '4.0')
#gi.require_version('Gdk', '4.0') # not need
from gi.repository import Gtk, Gdk

class TestWindow(Gtk.ApplicationWindow):
    '''
        GTK4 Clipboard @ String Copy
        This Code is Instance Only
    '''
    def __init__(self, app):
        Gtk.ApplicationWindow.__init__(self, application=app)
        self.clip = self.props.display.get_primary_clipboard()
        print(self.clip) #=> GdkWaylandPrimary (GdkClipboard)
        '''
        self.clip = self.get_clipboard()
        self.clip = self.props.display.get_clipboard()

        display = Gdk.Display.get_default()
        self.clip = display.get_primary_clipboard()
        self.clip = display.get_clipboard()

        # local is All True...
        print(self.clip.props.local)
        '''
        self.clip.set('スズキのバイクはカッコイイ')
        print(self.clip.get_formats().to_string()) #=> { gchararray, text/plain;charset=utf-8, text/plain }
        #
        #self.clip.set_text('No GIR Binding') # Error!
        #
        self.clip.read_text_async(None, self.read_text_async_cb)
        #
        self.label = Gtk.Label(label='Motor Cycle')
        self.set_child(self.label)
        self.set_default_size(400, 100)
        self.present()

    def read_text_async_cb(self, clip, res):
        text = clip.read_text_finish(res)
        self.label.set_label(text)

class TestApplication(Gtk.Application):
    def __init__(self):
        Gtk.Application.__init__(self, application_id='org.suzuki.katana')

    def do_activate(self):
        TestWindow(self)

app = TestApplication()
app.run()

clip

何をどうやっても local Property が True になってしまう。
False にしないと Gedit 等の外部インスタンスとはコピペできない。
バグなのか?
他にやらないといけないことがあるのか?

それと set_text 等がバインドされていないのはどうなんだ?
set で文字列を渡したら普通にセットできたけど「ん?」って感じ。
バイナリの転送は GdkContentProvider でいいのかな?

Higanbana

この連休にて五条川での成果物。

カワセミ、ブレブレもしくは見失う。
キセキレイ、「もういる!」と喜んだがブレブレ。
コサメビタキ、顔が葉っぱかぶり。

1

その他も全滅、もう野鳥はやめようかなぁ。。。。。
こんな日もあるさって先月からずっとこんな感じだけど。
気を取り直して花写真の練習だ、もちろん今は彼岸花。

2

色々試したけどやはり G99 で花は F6.3 が一番イイね。
後ろのヒゲが F4 だとボケるし F8 だと背景と境界が不明瞭。
マニュアルフォーカスでピントのピークは横ひげの先端にしています。
あ、今回は Lightroom 書き出しを 2048x1536px に縮小してます。

3

F6.3 でも川に反射させた光は玉ボケになってくれます。
面白いと思っていっぱい撮ったけど大半が白飛びでした。
しかしコレはキットズームの 14-140 で撮ったんだけど。
F6.3 で使うなら文句なしだわ、単焦点使わなくなりそう。

それにしても野鳥と花でレンズを交換するのが面倒臭い。
ズームレンズを使うならパナライカの 12-60 もどんなだか試してみたい。
ならば G9 pro のレンズキットでも買い足せば一気に揃うぞと。
ただそうすると今のサブ機 D3400 から重量が倍以上になる、うーん。

てか花とかは背面液晶で撮影するようになったんで D3400 がチト。
LUMIX の MF アシストとピーキング機能が便利過ぎなのが悪い。
ファインダーだけで追い込むレフ機が今となっては面倒臭くて。
って調べたら G9 pro のキットって 20 万もするのか、ヤメヤメ。

manjyusyage

彼岸花の季節がやってきました。
そうなると、この問題が気になってくる。

1

macOS と Fedora でまったく色が違うんです。
彼岸花の赤だと露骨に解る、これ全部同じ写真なんですよ。
Macbook に Fedora を入れても同じ傾向なのでディスプレイは関係ないな。
以前ディスプレイの調整でなんとかしようと思ったけど無駄だった。

画面が青みがかっているのは液晶パネルを写真にした時の特性かと。
M1 Mac は押さえ込んでいるな、Retina ディスプレイって凄いんだな。
目で画面を見た場合は赤色以外はそこまで気にならない、同じではないけど。

ちなみに LUMIX 本体の液晶では macOS とほぼ同じ色です。
iPhone も当然同じ、写真のプロがみんな Mac な理由がよくわかる。

2

カラープロファイルを変更とかしてみたけど意味なかった。

Intel CPU 内蔵グラを AMD や NVIDIA に変更すればマシになるかも。
いやそれ不安定になったり画面が映らなくなる場合があるのは経験済だ。
写真の色以外は何も不満が無く安定している今の環境を壊したくない。
もしやるとしても次の新規インストールの時。

てか Linux で写真のためだけにグラボ変更ってのも、ゲームしないし。
それより Mac から外部ディスプレイ出力に金を使ったほうが。
Linux でなんとかしようとか考えるのは単なる貧乏人みたいで。

写真管理や RAW 現像などの画像編集は macOS + Adobe CC で。
Python プログラミングやサーバー用途は GVFS が便利な Fedora で。
が一番だよね。

GtkGestureDrag

GtkGesture ラスト、GtkGestureDrag を。
マウスでドラッグすると文字列が着いてくるサンプルコード。

#!/usr/bin/env python3
 
import gi, sys
gi.require_version('Gtk', '4.0')
from gi.repository import Gtk

class Win(Gtk.ApplicationWindow):
    '''
        GtkGestureDrag Sample Code
    '''
    def __init__(self, app):
        Gtk.ApplicationWindow.__init__(self, application=app)
        # var
        self.offset_x = 50
        self.offset_y = 50
        self.draw_x = 0
        self.draw_y = 0
        # gesture drag
        drag = Gtk.GestureDrag()
        drag.connect('drag-begin', self.on_gesture_drag_begin)
        drag.connect('drag-update', self.on_gesture_drag_update)
        drag.connect('drag-end', self.on_gesture_drag_end)
        self.add_controller(drag)
        # view
        self.view = Gtk.DrawingArea()
        self.view.set_draw_func(self.view_draw_func)
        self.set_child(self.view)
        # resize
        self.set_default_size(400, 300)

    def view_draw_func(self, da, cr, width, height):
        cr.move_to(self.draw_x + self.offset_x, self.draw_y + self.offset_y)
        cr.set_font_size(36)
        cr.show_text('Drag and Drop')

    def on_gesture_drag_begin(self, ges, offset_x, offset_y):
        pass

    def on_gesture_drag_end(self, ges, offset_x, offset_y):
        self.offset_x += offset_x
        self.offset_y += offset_y

    def on_gesture_drag_update(self, ges, offset_x, offset_y):
        self.draw_x = offset_x
        self.draw_y = offset_y
        self.view.queue_draw()

class App(Gtk.Application):
    def __init__(self):
        Gtk.Application.__init__(self)

    def do_startup(self):
        Gtk.Application.do_startup(self)
        Win(self)

    def do_activate(self):
        self.props.active_window.present()

app = App()
app.run(sys.argv)

drag

それと残りに GtkGestureStylus なんてのがあるけど。
どう考えてもスタイラスペン用途だよなって。
持っていないし GNOME てか Linux での使い道も思いつかない。
クリスタが Linux 対応するはずがないし、適材適所だよ。
なので無視でいいかなって。

ところでコレはファイルマネージャからのドロップではない。
GTK4 は drag_dest_add_uri_targets が使えないね。

Drag & dropping files with GTK4 – Platform – GNOME Discourse

こんなのを見つけたけど同じ所でクラッシュする。
うーん、今日もゲンナリするくらい進まない。