[ erweiterte Suche ]

»imagebmp(): gute Funktion gefunden!

function imagecreatefrombmp(): Läuft mit allen Bitraten!Neues Thema eröffnenNeue Antwort erstellenDas Thema einem Freund empfehlenDas Thema druckenrmdirs() Verzeichnis rekursiv löschen (+ Unterverzeichnisse)
Seite 1 von 1 [1 Beitrag]
AutorNachricht
Administrator 


Name: Marc
Geschlecht:
Anmeldedatum: 28.08.2004
Beiträge: 39677
Chats: 11125
Wohnort: Hennef


Meine eBay-Auktionen:
20.04.2010, 09:17


Ich habe hier eine gute imagebmp Funktion gefunden, die ich nur maginal optimiert bzw. neu formatiert habe.

8 und 24 Bit ohne Kompression habe ich getestet. 32 Bit wird nicht unterstützt, ist aber zu verschmerzen.

   Code:
function imagebmp($im, $filename='', $bit=24, $compression=0) {
// version 1.00
if (!in_array($bit, array(1, 4, 8, 16, 24, 32))) {
$bit = 24;
}
else if ($bit == 32) {
$bit = 24;
}
$bits = pow(2, $bit);
imagetruecolortopalette($im, true, $bits);
$width = imagesx($im);
$height = imagesy($im);
$colors_num = imagecolorstotal($im);
$rgb_quad = '';
if ($bit <= 8) {
for ($i = 0; $i < $colors_num; $i++) {
$colors = imagecolorsforindex($im, $i);
$rgb_quad .= chr($colors['blue']) . chr($colors['green']) . chr($colors['red']) . "\0";
}
$bmp_data = '';
if ($compression == 0 || $bit < 8) {
$compression = 0;
$extra = '';
$padding = 4 - ceil($width / (8 / $bit)) % 4;
if ($padding % 4 != 0) {
$extra = str_repeat("\0", $padding);
}
for ($j = $height - 1; $j >= 0; $j --) {
$i = 0;
while ($i < $width) {
$bin = 0;
$limit = $width - $i < 8 / $bit ? (8 / $bit - $width + $i) * $bit : 0;
for ($k = 8 - $bit; $k >= $limit; $k -= $bit) {
$index = imagecolorat($im, $i, $j);
$bin |= $index << $k;
$i++;
}
$bmp_data .= chr($bin);
}
$bmp_data .= $extra;
}
}
// RLE8
else if ($compression == 1 && $bit == 8) {
for ($j = $height - 1; $j >= 0; $j--) {
$last_index = "\0";
$same_num = 0;
for ($i = 0; $i <= $width; $i++) {
$index = imagecolorat($im, $i, $j);
if ($index !== $last_index || $same_num > 255) {
if ($same_num != 0) {
$bmp_data .= chr($same_num) . chr($last_index);
}
$last_index = $index;
$same_num = 1;
}
else {
$same_num++;
}
}
$bmp_data .= "\0\0";
}
$bmp_data .= "\0\1";
}
$size_quad = strlen($rgb_quad);
$size_data = strlen($bmp_data);
}
else {
$extra = '';
$padding = 4 - ($width * ($bit / 8)) % 4;
if ($padding % 4 != 0) {
$extra = str_repeat("\0", $padding);
}
$bmp_data = '';
for ($j = $height - 1; $j >= 0; $j--) {
for ($i = 0; $i < $width; $i++) {
$index  = imagecolorat($im, $i, $j);
$colors = imagecolorsforindex($im, $index);
if ($bit == 16) {
$bin = 0 << $bit;
$bin |= ($colors['red'] >> 3) << 10;
$bin |= ($colors['green'] >> 3) << 5;
$bin |= $colors['blue'] >> 3;
$bmp_data .= pack("v", $bin);
}
else {
$bmp_data .= pack("c*", $colors['blue'], $colors['green'], $colors['red']);
}
}
$bmp_data .= $extra;
}
$size_quad = 0;
$size_data = strlen($bmp_data);
$colors_num = 0;
}
$file_header = 'BM' . pack('V3', 54 + $size_quad + $size_data, 0, 54 + $size_quad);
$info_header = pack('V3v2V*', 0x28, $width, $height, 1, $bit, $compression, $size_data, 0, 0, $colors_num, 0);
if ($filename != '') {
$fp = fopen($filename, 'wb');
fwrite($fp, $file_header . $info_header . $rgb_quad . $bmp_data);
fclose($fp);
return true;
}
echo $file_header . $info_header. $rgb_quad . $bmp_data;
return true;
}


Das passende imagecreatefrombmp-Gegenstück gibts hier:
http://www.programmierer-forum.de/function-imagecreatefrombmp-laeuft-mit-allen-bitraten-t143137.htm
Nach obenprofil pn email
Gast 

20.04.2010, 09:17


Mach mit!

Wenn Dir die Beiträge zum Thema "imagebmp(): gute Funktion gefunden!" gefallen haben oder Du noch Fragen hast oder Ergänzungen machen möchtest, solltest Du Dich gleich bei uns anmelden:

    » Anmelden

Registrierte Mitglieder genießen die folgenden Vorteile:
✔ kostenlose Mitgliedschaft
keine Werbung
✔ direkter Austausch mit Gleichgesinnten
✔ neue Fragen stellen oder Diskussionen starten
✔ schnelle Hilfe bei Problemen
✔ Bilder und Videos hochladen
✔ und vieles mehr...

Verwandte Suchbegriffe

php imagebmp, imagebmp, imagebmp php, php headeer gif, honda typ schlüssel anlernen, php imagbmp, honda accord codieren, imagebmp() php, gute php funktionen, php "imagebmp", imagecreatefrombmp, funkfernbedienung anlernen honda accord, +php +imagebmp +8+ 16+, imagebmp.php, c++ BMP Funktionen, imagebmp(, del sol zentralverriegelung funktion, $file_header 'BM' pack, imagecolorat bmp, bmp keine kompression bit
Nach oben
Seite 1 von 1 [1 Beitrag]
Neues Thema eröffnenNeue Antwort erstellen
Ähnliche BeiträgeRe:HitsLetzter Beitrag
Gute Alternative zu Type-R Hecklippe gefunden
Hallo, lange habe ich nach einer Hecklippe gesucht, die der Type-R Lippe recht nahe kommt, aber etwas spezielles hat, um sich von der Masse abzuheben. Und diese will ich euch natürlich nicht vorenthalten. Besonderer Vorteil ist bei dieser...
von Jiss
133506.11.2008, 16:50
chartinael
LSD Funktion
Wollte mal wissen ob irgendjemand von euch weiß wie man herausfindet ob das LSD so funktioniert wie es soll? Oder könnte man sonst überhaupt nicht fahren. Wie weiß ich ob das LSD wirklich jetzt sperrt oder...
von Honda_Civic_Boy_VB
411729.09.2011, 10:35
Honda_Civic_Boy_VB
Contents Funktion
Hallo, ist es irgendiwe möglich in PMWiki eine art contents funktion (wie z.B. im MediaWiki das die "Überschriften" automatisch am seitenanfang in ner contents-box zusammengefasst werden) einzubauen? Vielleicht gibt es ja auch schon eine...
von qrawl
034919.09.2007, 14:36
qrawl
ZV ohne Funktion
Hallo, ich habe das Problem, das mein ZV mit einen Schlüssel nicht Funktioniert, ich weiß von anderen Hersteller das man Schlüssel anlernen, codieren muss, habe vor drei Wochen einen komplett reset durchgefürt, gibt es sowas auch bei Honda und wie geht...
von wund
19423.02.2011, 21:20
Spink
Sound Off Funktion
hätte da mal ne kleine Anregung. Die Chat Sounds können einem Teilweise echt auf den Geist gehen :yes: Ich weis nicht wie oft ich mich zu Tode erschrecke, weil ich den Chat im Hintergrund habe und auf einmal son Sound kommt! Meistens hatte ich dann...
von HugoFreund
316807.06.2011, 20:20
Pumsti
Mittelwert Funktion in C
Hallo, ich bin nicht so gut in Programmieren. Möchte das lernen aber ich weiss nicht wie. Wir haben Programmieren C und C++ in der Schule aber irgend wie verstehe ich das nicht so. Vielleich irgend welche Tipps wie ich mitch verbessern kann oder...
[C]von len4ik
4251119.09.2011, 15:43
hugo17
Rückfahrleuchten ohne Funktion ??
Hi Leute Ich habe bei mir die Kopfdichtung neu gemacht und seit dem funktionieren die Rückfahrscheinwerfer nicht mehr ? Wisst ihr was es sein kann ? Habe die Glühleuchten...
Seite 2von Pico
1237808.02.2006, 18:32
Pico
tacho ohne funktion
tach leute .. mein problem ist mein del sol ...hab ne kupplung gewechselt und jetzt geht nur noch der drehzahlmesser ...hab auch schon die fehlerliste aus´m werkstatthandbuch verfolgt aber komm nicht weiter ... ..also da steht am 3p stecker vom...
von crx_b18c6
216125.09.2011, 10:09
Lightspeed
Drehzahlmesser ohne funktion.
hallo,wie oben steht ist mein drehzahlmesser ohne funktion,habe den kabelbaum aus nem ba4 B20A5 wo anders eingebaut und nun geht der drehzahlmesser nicht mehr. wer kann...
von Jens-Accord
014101.12.2008, 11:25
Jens-Accord
Ventilator ohne Funktion
Hilfe.Vielleicht könnt ihr mir ja etwas helfen. Seit einiger Zeit habe ich überhitzungsprobleme bei meinem ED 9 Die NAdel steigt bis kurz vor rot.Der Ventielator macht keinen Mux.Habe den Termoschalter Ausgewechselt,Thermostat,und die Wasserpumpe...
von Huber Günther
79722.07.2009, 18:16
Der_Ronny
© 2004 - 2012 www.programmierer-forum.de (srv02) | Communities | Impressum