hoge 画像にパスを加えるツール version 5

2019/07/23 10:21 by yamasyuh68
  :追加された部分   :削除された部分
(差分が大きい場合、文字単位では表示しません)
ビットマップ画像とパスの結合  hoge
- 画像保存調べ190722 
- 画像保存出来これでQImageに書き出せってドキュメントには書いてある
しかしViewにすべきかSceneにすべきか?
両方に同じメソッドが用意されていて引数も全く同じだ
メインがviewで作ったからviewでいいか

>QGraphicsView.render (self, QPainter painter, QRectF target = QRectF(), QRect source = QRect(), Qt.AspectRatioMode mode = Qt.KeepAspectRatio)

>QGraphicsScene.render (self, QPainter painter, QRectF target = QRectF(), QRectF source = QRectF(), Qt.AspectRatioMode mode = Qt.KeepAspectRatio)
- **paint周りが今ひとつわからない**
今回もengineがないエラーになった
painterのbegin()もどういう場合に必須なのかわからない
自分で書く場合とシステムから呼ばれる場合で違うのだろうか??
勉強が必要だな ( ̄― ̄?)

```
qi=QImage()
self.render(qi) # <------------
qi.save(<pas>)

self.scene().addPixmap(self.pix)
の戻り値を保有しておいて
self.pix = self.scene().addPixmap(self.pix)
self.pix.boundingRect()
をレンダー領域として指定する
```
これでいいかな?

# パスの挿入修正 挿入点 p
①ポイントを6分割して5個作る  t=1/6
②p-2 -> t1  p-1 -> t5 とポイントを移動してから
③p-1 の位置に t2-t4 の3ポイントを挿入

# ベジェ線分の選択 1
①線分を10分割して4-6の3ポイント分のrectをリストで持つ
②contains_l 関数を作ってここで線分の包含判定を行う
③本体から呼んでヒットしたらそのインデクスを返す
④選択ポイントが3の場合の線分インデクスは0-2のいずれかだから、線分インデクスに対する選択ポイントは  int((l+3)/3) となる
⑤線分インデクスが有効なときは線分の色を変える
ポイント座標を取得して新しくベジェパスを作成して重ねてドローする
⑥この状態でaddpointが呼ばれたら、まず線分インデクスを確認して有意ならそこから選択ポイントを取得して引数にしてクラスのaddpointを呼ぶ

# ベジェ線分の選択 2
単純にポイント選択時に線分の色を変えれば良いだけか?
ポイント座標を取得して個別にベジェパスを作成してドローすればいいか??
どうせポイントは中点にしか追加しないから

---
--> [PyQt でベクターオブジェクト作成ツールを作る #](https://mimemo.io/m/3Rx1XoR367le95E)      

190722

  • 画像保存出来た
    これでQImageに書き出せってドキュメントには書いてある
    しかしViewにすべきかSceneにすべきか?
    両方に同じメソッドが用意されていて引数も全く同じだ
    メインがviewで作ったからviewでいいか

QGraphicsView.render (self, QPainter painter, QRectF target = QRectF(), QRect source = QRect(), Qt.AspectRatioMode mode = Qt.KeepAspectRatio)

QGraphicsScene.render (self, QPainter painter, QRectF target = QRectF(), QRectF source = QRectF(), Qt.AspectRatioMode mode = Qt.KeepAspectRatio)

  • paint周りが今ひとつわからない
    今回もengineがないエラーになった
    painterのbegin()もどういう場合に必須なのかわからない
    自分で書く場合とシステムから呼ばれる場合で違うのだろうか??
    勉強が必要だな ( ̄― ̄?)

パスの挿入修正 挿入点 p

①ポイントを6分割して5個作る t=1/6
②p-2 -> t1 p-1 -> t5 とポイントを移動してから
③p-1 の位置に t2-t4 の3ポイントを挿入

ベジェ線分の選択 1

①線分を10分割して4-6の3ポイント分のrectをリストで持つ
②contains_l 関数を作ってここで線分の包含判定を行う
③本体から呼んでヒットしたらそのインデクスを返す
④選択ポイントが3の場合の線分インデクスは0-2のいずれかだから、線分インデクスに対する選択ポイントは int((l+3)/3) となる
⑤線分インデクスが有効なときは線分の色を変える
ポイント座標を取得して新しくベジェパスを作成して重ねてドローする
⑥この状態でaddpointが呼ばれたら、まず線分インデクスを確認して有意ならそこから選択ポイントを取得して引数にしてクラスのaddpointを呼ぶ

ベジェ線分の選択 2

単純にポイント選択時に線分の色を変えれば良いだけか?
ポイント座標を取得して個別にベジェパスを作成してドローすればいいか??
どうせポイントは中点にしか追加しないから


--> PyQt でベクターオブジェクト作成ツールを作る #