将数字水印(签名)嵌入至载体图像中。
(self, sig: bytes, sig_filename: Optional[str],
cover: Optional[bytes], cover_filename: Optional[str],
stego_filename: Optional[str])
| 124 | raise StegaPyException(str(e), StegaPyErrors.UNHANDLED_EXCEPTION, self.NAMESPACE) |
| 125 | |
| 126 | def embed_mark(self, sig: bytes, sig_filename: Optional[str], |
| 127 | cover: Optional[bytes], cover_filename: Optional[str], |
| 128 | stego_filename: Optional[str]) -> bytes: |
| 129 | """将数字水印(签名)嵌入至载体图像中。""" |
| 130 | if Purpose.WATERMARKING not in self.plugin.get_purposes(): |
| 131 | raise StegaPyException( |
| 132 | "插件不支持水印", |
| 133 | StegaPyErrors.PLUGIN_DOES_NOT_SUPPORT_WM, |
| 134 | self.NAMESPACE |
| 135 | ) |
| 136 | |
| 137 | try: |
| 138 | # 水印不使用压缩和加密 |
| 139 | return self.plugin.embed_data(sig, sig_filename, cover, |
| 140 | cover_filename, stego_filename) |
| 141 | except StegaPyException: |
| 142 | raise |
| 143 | except Exception as e: |
| 144 | raise StegaPyException(str(e), StegaPyErrors.UNHANDLED_EXCEPTION, self.NAMESPACE) |
| 145 | |
| 146 | def check_mark(self, stego_data: bytes, stego_filename: Optional[str], |
| 147 | orig_sig_data: bytes) -> float: |