def updateCompressionTextBox(self): self.payload1 = Steganography.Payload( img=self.pay1Img, compressionLevel=self.compressionLevelVal) self.payloadSizeVal = len(self.payload1.content) self.txtPayloadSize.setText(str(self.payloadSizeVal)) self.checkSaveBtnConds()
def sliderReleased(self): img = S.imageToArray(self.P1fname) payload = S.Payload( rawData=img, compressionLevel=self.slideCompression.sliderPosition()) self.txtPayloadSize.setText(str(len(payload.json))) self.checkEmbedEnabled()
def newImage(self): try: payload = Steganography.Payload(self.viewPayload1.imageArray, self.compression, None) self.txtPayloadSize.setText("{0}".format(len(payload.xml))) except ValueError: self.txtPayloadSize.setText("0")
def newpayload(self): self.pay_img = self.viewPayload1.imgArr self.payload = Steganography.Payload(self.pay_img, self.compression) self.payloadsize = len(self.payload.xml) self.txtPayloadSize.setText(str(self.payloadsize)) self.payloadsize *= 8 if ((self.chkOverride.isChecked() or (self.carr and self.carr.payloadExists() == False)) and (self.payloadsize > 0 and self.payloadsize < self.carriersize)): self.btnSave.setEnabled(True) else: self.btnSave.setEnabled(False)
def embed(self): aa = Steganography.Carrier(self.carrier_array) bb = Steganography.Payload(self.payload_array,compressionLevel=self.compression) final_img = aa.embedPayload(bb,override=True) filePath, _ = QFileDialog.getSaveFileName(self, caption='Save Image ...', filter="PNG files (*.png)") if not filePath: return scipy.misc.imsave(filePath+'.png',final_img)
def compressionChecked(self): if self.chkApplyCompression.isChecked(): self.lblLevel.setEnabled(True) self.slideCompression.setEnabled(True) self.txtCompression.setEnabled(True) self.sliderReleased() else: self.lblLevel.setEnabled(False) self.slideCompression.setEnabled(False) self.txtCompression.setEnabled(False) img = S.imageToArray(self.P1fname) payload = S.Payload(rawData=img) self.txtPayloadSize.setText(str(len(payload.json))) self.checkEmbedEnabled()
def updatecompress(self): self.txtCompression.setText(str(self.slideCompression.value())) if self.compression > -1: self.compression = self.slideCompression.value() self.payload = Steganography.Payload(self.pay_img, self.compression) self.payloadsize = len(self.payload.xml) self.txtPayloadSize.setText(str(self.payloadsize)) self.payloadsize *= 8 if ((self.chkOverride.isChecked() or (self.carr and self.carr.payloadExists() == False)) and (self.payloadsize > 0 and self.payloadsize < self.carriersize)): self.btnSave.setEnabled(True) else: self.btnSave.setEnabled(False)
def viewPayload1DropEvent(self, event): if event.mimeData().hasUrls: event.setDropAction(Qt.CopyAction) for url in event.mimeData().urls(): fname = str(url.toLocalFile()) if fname and fname.endswith(".png"): self.P1fname = fname try: img = S.imageToArray(self.P1fname) self.payload1 = S.Payload(rawData=img) size = len(self.payload1.json) self.viewPayload1LoadImage() self.txtPayloadSize.setText(str(size)) self.chkApplyCompression.setCheckState(Qt.Unchecked) self.lblLevel.setEnabled(False) self.slideCompression.setEnabled(False) self.txtCompression.setEnabled(False) self.slideCompression.setValue(0) self.txtCompression.setText('0') self.checkEmbedEnabled() except ValueError: event.ignore() else: event.ignore()
def set_diplays(self, view, filePath): if view == self.viewPayload1: if self.flag == 0: self.displayImage(view, filePath) self.chkApplyCompression.setChecked(False) self.slideCompression.setSliderPosition(0) self.slideCompression.setEnabled(False) img_array = scipy.misc.imread(filePath) a = Steganography.Payload(img = img_array) size = len(a.xml) size_1 = str(size) self.txtPayloadSize.setText(size_1) self.chkApplyCompression.setDisabled(False) self.flag = 1 self.flag_payload = 1 self.size_payload = size self.payload_array = img_array else: img_array = scipy.misc.imread(filePath) a = Steganography.Payload(img = img_array, compressionLevel= self.compression) size = len(a.xml) size_1 = str(size) self.payload_array = img_array self.size_payload = size self.txtPayloadSize.setText(size_1) elif view == self.viewCarrier1: self.displayImage(view,filePath) img_array = scipy.misc.imread(filePath) size = img_array.size/8 size_1 = str(size) self.txtCarrierSize.setText(size_1) aa = Steganography.Carrier(img_array) if aa.payloadExists(): self.lblPayloadFound.setText(">>>>Payload Found <<<<") self.chkOverride.setEnabled(True) else: self.lblPayloadFound.setText("") self.chkOverride.setEnabled(False) self.flag_carrier = 1 self.size_carrier = size self.carrier_array = img_array elif view == self.viewCarrier2: self.displayImage(view,filePath) img_array = scipy.misc.imread(filePath) self.carrier2_array = img_array a = Steganography.Carrier(img_array) if not(a.payloadExists()): self.lblCarrierEmpty.setText(">>>>Carrier Empty<<<<") self.btnExtract.setEnabled(False) self.btnClean.setEnabled(False) else: self.lblCarrierEmpty.setText("") self.btnExtract.setEnabled(True) self.btnClean.setEnabled(True)