Python QT GUI zur OpenAPI (Website Thumbnailer)
Ein guter Freund von mir war so freundlich, ein Python QT Interface zu meiner Website Thumbnailer API zu bauen.
Hier der Sourcecode:
from PyQt4.QtCore import * from PyQt4.QtGui import * from PyQt4.QtNetwork import * from designs.FetchDialog import Ui_FetchDialog import os,sys class MainClass(QDialog): def __init__(self, parent = None): super(QDialog, self).__init__() QApplication.setStyle(QStyleFactory.create('plastique')) self.layout = Ui_FetchDialog() self.layout.setupUi(self) self.layout.progress.hide() self.layout.btn_save.hide() self.layout.pic.hide() self.connect(self.layout.btn_save, SIGNAL("pressed()"), self.saveDownloadedImage) self.connect(self.layout.btn_get, SIGNAL("pressed()"), self.progressDownload) def progressDownload(self): self.layout.progress.setValue(0) self.layout.progress.show() self.networkmanager = QNetworkAccessManager(); request = QNetworkRequest() url = "http://codejungle.org/api/thumb_get.php?url=%s" % self.layout.url.text() request.setUrl(QUrl(url)) self.reply = self.networkmanager.get(request) self.connect(self.reply, SIGNAL("downloadProgress(qint64,qint64)"), self.updateProgressBar) self.connect(self.networkmanager, SIGNAL("finished(QNetworkReply *)"), self.showThumbnail) def showThumbnail(self, replyFromServer): if(replyFromServer.isFinished() == True): imageData = replyFromServer.readAll() if(imageData.size() == None): print "Error while reading image!" pixmap = QPixmap() pixmap.loadFromData(imageData) self.originalPixmap = pixmap if(pixmap.width() > 800): pixmap = pixmap.scaledToWidth(800) self.layout.pic.setPixmap(pixmap) self.layout.pic.setMaximumHeight(600) self.layout.pic.setMaximumWidth(800) self.layout.pic.show() self.layout.btn_save.show() replyFromServer.deleteLater() def saveDownloadedImage(self): saveTo = QFileDialog.getSaveFileNameAndFilter(parent=None, caption=QString(), directory = QString(), filter = "Images (*.png)") if(self.originalPixmap.save(saveTo[0], "png")): QMessageBox.information(self, "Success!", "Your image is now saved!") self.layout.pic.hide() self.layout.btn_save.hide() self.resize(530, 132) def updateProgressBar(self, bytesRecieved, bytesTotal): self.layout.progress.setMaximum(bytesTotal) self.layout.progress.setValue(bytesRecieved) if(self.layout.progress.value() == bytesTotal): self.layout.progress.hide() if __name__ == "__main__": app = QApplication([]) software = MainClass() software.show() app.exec_()
Known Bugs:
Vielen Dank an Mario (www.unite-it.at) an dieser Stelle.
Andreas
Schon wieder Omas Geburtstag vergessen?
Der Arzttermin war doch am Montag, oder war es doch Dienstag?
Was war noch mal die wichtige Sache, die ich heute unbedingt noch machen wollte?
Und wann fängt eigentlich das Meeting an?
Peinliche Situationen, die man sich mit meinem neuen Reminder Service
ersparen kann.
Der Sourcecode ist wie immer OpenSource, doch müsst
ihr euch noch ein paar Wochen gedulden.
Ich möchte zuerst sicherstellen, dass der Reminder Service
auch wirklich stabil läuft und dafür brauch ich möglichst viele Betatester.
Wenn du mir dabei helfen magst kannst du Remind ME hier testen:
http://www.codejungle.org/reminder/
LG
Andreas
Boersenspiel in php zum gratis Download
Weil ich öfter gefragt worden bin ob ich mein Börsenspiel zum Download freigeben kann,
habe ich mich entschlossen es nun unter der GPL2 zu veröffentlichen.
Jeder der es testen mag kann das hier tun: Börsenspiel Demo
Jeder der es downloaden möchte kann das hier machen: Börsenspiel downloaden
Der Sourcecode ist relativ straight forword gecodet.
Was evtl. interessant ist, es gibt zwei Arten wie die Börsendaten
aggregiert werden.
1. Yahoo Finance (generate2.php)
2. Random (generate.php)
Ich würde die zweite Variante empfehlen, da die Daten von Yahoo sich nur alle 15 Min. ändern und
dann meist auch nicht viel.
Das Gameplay ist auf jeden Fall bei der zweiten Variante interessanter und man hat als Entwickler auch
mehr Möglichkeiten.
Ich wünsch euch viel Spass beim Brokern und würde mich über
Verbesserungsvorschläge sehr freuen.
LG
Andreas
Gesichtserkennung mit Openvc und meiner API
Ich möchte hier eine weitere Funktion meiner API kurz vorstellen.
Es handelt sich um eine Gesichtserkenungs API, mit der man zum Beispiel
eine grosse Anzahl von Bildern schnell und einfach sortieren kann oder aber
sicherstellen kann, dass auf einem hochgeladenen Profilbild ein Gesicht zu sehen ist.
Code
<?
/**
* Face detection
*
*
* @param $image string should be the path to your jpeg
*
* @return string xml output of my api
*
* @author andreas beder <office@codejungle.org>
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
**/
function face_detection($image){
$data = array('face' => '@'.$image);
$Curl_Session = curl_init('http://www.codejungle.org/api/face.php');
curl_setopt ($Curl_Session, CURLOPT_POST, 1);
curl_setopt ($Curl_Session, CURLOPT_POSTFIELDS, $data);
curl_setopt ($Curl_Session, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($Curl_Session, CURLOPT_RETURNTRANSFER, 1);
$response=curl_exec($Curl_Session);
curl_close ($Curl_Session);
return $response;
}
?>
Open API - Website Thumbnailer
Wer schon immer mal einen Screenshot von einer gesamten Webseite haben wollte, aber nicht die einzelnen Bilder
zusammen schneiden mag, bzw. das ganze gerne aus einem eigenen Programm anbieten würde, kann
seit heute die Codejungle Open API verwenden.
Hier ein einfaches PHP Bsp.:
Code
<?
/**
* Website Thumbnail
* creates a thumbnail of given url
*
* @param $url string
* @param $size string optional could be large or crop
*
* @return string url of generated thumbnail
*
* @author andreas beder <office@codejungle.org>
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
**/
function website_thumbnail($url, $size){
$Curl_Session = curl_init('http://www.codejungle.org/api/thumb.php');
curl_setopt ($Curl_Session, CURLOPT_POST, 1);
curl_setopt ($Curl_Session, CURLOPT_POSTFIELDS, "url=$url&size=$size");
curl_setopt ($Curl_Session, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($Curl_Session, CURLOPT_RETURNTRANSFER, 1);
$response=curl_exec($Curl_Session);
curl_close ($Curl_Session);
$xml=simplexml_load_string($response);
return $xml;
}
?>