파이썬으로 포토샵 압력계를 만들고 싶은데 잘 안풀립니다..

neereu의 이미지

프로그래밍에 대해서는 문외한입니다.
지인분들께 도움을 구해서 태블릿 펜 압력을 실시간으로 포토샵에서 볼수 있는 툴을 만들려고 했었는데
펜 압력 자체는 만들어진 파이썬 창안에서는 펜압력을 감지하나,
포토샵같은 타프로그램을 사용시엔 전혀 동작을 하지 않습니다.

(증상 링크: https://youtu.be/NMSgt96Lsg4 )

아는분께서는 qwidget안에서만 작동해서 그렇다고하시는데 파이썬 말고 다른 언어만 공부하시다보니
해결이 힘들거같고 여기 혹시 아시는분 계실까해서 질문 올려봅니다.

간단히 해결할 수 있는 문제인지 궁금합니다.
너무 복잡해지면 포기할려구요...

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
 
 
class PressureBar(QWidget):
    def __init__(self, parent=None):
        super().__init__()
        self.pen_pressure = 0
        self.resize(100, 100)
        frame_rect = app.desktop().frameGeometry()
        self.progress = QProgressBar(self)
        self.progress.setGeometry(0, 0, 300, 25)
        self.progress.setMaximum(100)
 
    def tabletEvent(self, tabletEvent):
        self.pen_pressure = int(tabletEvent.pressure() * 100)
 
        if(tabletEvent.type() == QTabletEvent.TabletPress):
            self.penIsDown = True
 
        self.progress.setValue(self.pen_pressure)
        tabletEvent.accept()
        self.update()
 
app = QApplication(sys.argv)
myWindow = PressureBar()
myWindow.show()
app.exec()
익명 사용자의 이미지

제대로 말씀해 주셨네요. 간단하게 설명하자면 포토샵과 그림판을 같이 띄워 놓고 그림판에 태블릿으로 무언가를 그렸을 때 포토샵에는 그림이 그려지지 않는 것과 같은 원리입니다. 다른 창으로 가는 태블릿 입력 이벤트를 가로채야 하기 때문에 간단히 해결할 수 있는 문제는 아닙니다.

neereu의 이미지

답변 감사합니다!
혹시 될려나해서 이것저것 코드 넣어보고 있었는데,
복잡한 문제면 제가 해결 할 수 있는 문제는 아닌걸 알았으니 이쯤에서 그만해야겠네요 ㅠ

세벌의 이미지

저는 포토샵에는 문외한이고 GIMP를 즐겨씁니다.
태블릿 펜 압력을 실시간으로 포토샵에서 볼수 있는 툴
이 무엇을 뜻하는지 잘 모르겠습니다만 포토샵 프로그램을 변경하는 건가요?
포토샵 관련 커뮤니티에 물어보면 도움을 얻을 수 있을 것 같습니다.
그런데 김프는 오픈소스이지만 포토샵은 오픈소스가 아니라서 쉽지 않을 거 같네요.

neereu의 이미지

포토샵 프로그램을 변경하는것은 아니고, 새로운 프로그램 창을 뛰워서 펜 태블릿의 펜 압력게이지를 실시간으로 볼려구 하는거에요. 유튜브 링크보시면 바로 아실수 있을거에요.
이게 와콤 쓰시면 프로그램 등록정보가서 펜 쪽으로 가보면 압력 게이지가 실시간으로 보이는데, 포토샵을 켠채로도 와콤 프로그램에서는 압력계를 실시간으로 보여줍니다만 이상하게 프로그램으로 압력게이지만 따로 만들면 작동이 안되네용..

swish95의 이미지

이벤트 후킹으로 해야 되지 않을까요?
물론 그 이벤트에 압력에 관한 내용도 있어야 되겟지만요

------------------------------------------------------------
ProgrammingHolic

neereu의 이미지

프로그래밍쪽은 잘모르지만 구조에대해선 얼핏얼핏 들은게있어서
저도 뭔가 포토샵에다 후킹 같은걸 시도해볼려고 아래코드를 응용해볼려고 했는데 역시 잘 안되더라구요.
압력계쪽으론 포토샵 코드 아는것도 없고, 다들 말씀하시는것처럼 아예 포토샵 플러그인쪽으로 접근하는게 맞는거 같네요.

# Hello World!
from win32com.client import Dispatch
 
app = Dispatch("Photoshop.Application")
 
psTextLayer = 2  # from enum PsLayerKind
docRef = app.Documents.Add(320, 240)
layerRef = docRef.ArtLayers.Add()
layerRef.Kind = psTextLayer
textItem = layerRef.TextItem
textItem.Contents = "HELLO WORLD!"
textItem.Position = (120, 120)

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.