-
Notifications
You must be signed in to change notification settings - Fork 25
Expand file tree
/
Copy pathexamples.xml
More file actions
157 lines (145 loc) · 5.29 KB
/
examples.xml
File metadata and controls
157 lines (145 loc) · 5.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 10c69571e7dd8a7cc0fbc9f20a55d24b1b1032be Maintainer: nilgun Status: ready -->
<chapter xml:id="image.examples" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
&reftitle.examples;
<section xml:id="image.examples-png">
<title>PHP ile PNG oluşturmak</title>
<para>
<example>
<title>- PHP ile PNG oluşturma örneği</title>
<programlisting role="php">
<![CDATA[
<?php
header("Content-type: image/png");
$string = $_GET['text'];
$foto = imagecreatefrompng("images/button1.png");
$turuncu = imagecolorallocate($foto, 220, 210, 60);
$px = (imagesx($foto) - 7.5 * strlen($string)) / 2;
imagestring($foto, 3, $px, 9, $string, $turuncu);
imagepng($foto);
imagedestroy($foto);
?>
]]>
</programlisting>
</example>
Bu örnek bir sayfadan şöyle bir etiketle çağırlabilir: <literal><img
src="button.php?text=gönder"></literal>. Yukarıdaki
<filename>button.php</filename> betiği bu
"<literal>gönder</literal>" dizgesini alır ve
"<filename>images/button1.png</filename>"
resminin üzerine yerleştirip elde edilen resmi çıktılar. Bu yöntem, her
düğme için ayrı bir düğme resmi kullanmaktan daha verimlidir. Bu yöntemle
düğmeler devingen olarak üretilir.
</para>
</section>
<section xml:id="image.examples-watermark">
<title>Alfa kanallarını kullanarak resme damga basmak</title>
<para>
<example>
<title>- Alfa kanallarını kullanarak resme damga basma örneği</title>
<programlisting role="php">
<![CDATA[
<?php
// Filigran uygulanacak fotoğrafı ve damgayı yükleyelim.
$damga = imagecreatefrompng('damga.png');
$foto = imagecreatefromjpeg('foto.jpeg');
// Damganın kenar boşluklarını ayarlayıp resmin
// yükseklik ve genişliğini alalım
$sağ_boşluk = 10;
$alt_boşluk = 10;
$sx = imagesx($damga);
$sy = imagesy($damga);
// Damga resmini koordinatları belirterek kenar boşlukları ile
// birlikte fotoğrafın üzerine kopyalayalım.
imagecopy($foto, $damga, imagesx($foto) - $sx - $sağ_boşluk,
imagesy($foto) - $sy - $alt_boşluk,
0, 0, imagesx($damga), imagesy($damga));
// Sonucu çıktılayıp belleği serbest bırakalım.
header('Content-type: image/png');
imagepng($foto);
imagedestroy($foto);
?>
]]>
</programlisting>
<mediaobject>
<alt>Alfa kanallarını kullanarak resmin damgalanması</alt>
<imageobject>
<imagedata fileref="en/reference/image/figures/watermarks.png" />
</imageobject>
</mediaobject>
</example>
Telif haklı fotoğraflara ve görüntülere bir işaret veya damga basmanın en
uygun yolu budur. Damga resminde metin olarak bir alfa kanalının varlığı
halinde metne kenar yumuşatma uygulanacağına dikkat edin. Bu, kopyalama
sırasında korunur.
</para>
</section>
<section xml:id="image.examples.merged-watermark">
<title>Yarı geçirgen filigran oluşturmak için
<function>imagecopymerge</function> kullanımı</title>
<para>
<example>
<title><function>imagecopymerge</function> kullanarak yarı geçirgen
filigran oluşturma örneği</title>
<programlisting role="php">
<![CDATA[
<?php
// Filigran uygulanacak fotoğrafı ve damgayı yükleyelim.
$foto = imagecreatefromjpeg('foto.jpeg');
// Önce damga resmini GD'yi kullanarak oluşturalım.
$damga = imagecreatetruecolor(100, 70);
imagefilledrectangle($damga, 0, 0, 99, 99, 0x0000FF);
imagefilledrectangle($damga, 9, 9, 90, 60, 0xFFFFFF);
imagestring($damga, 5, 20, 20, 'libGD', 0x0000FF);
imagestring($damga, 3, 20, 40, '(c) 2007-9', 0x0000FF);
// Damganın kenar boşluklarını ayarlayıp resmin
// yükseklik ve genişliğini alalım
$yan_boşluk = 10;
$alt_boşluk = 10;
$sx = imagesx($damga);
$sy = imagesy($damga);
// %50 matlıktaki damgayı fotoğrafa basalım.
imagecopymerge($foto, $damga, imagesx($foto) - $sx - $yan_boşluk,
imagesy($foto) - $sy - $alt_boşluk, 0, 0,
imagesx($damga), imagesy($damga), 50);
// Sonucu kaydedip belleği serbest bırakalım.
imagepng($foto, 'damgalı_foto.png');
imagedestroy($foto);
?>
]]>
</programlisting>
<mediaobject>
<alt>Yarı geçirgen filigran oluşturmak için imagecopymerge() kullanımı</alt>
<imageobject>
<imagedata fileref="en/reference/image/figures/watermark-merged.png" />
</imageobject>
</mediaobject>
</example>
Bu örnekte özgün görüntü ile damgayı birleştirmek için
<function>imagecopymerge</function> işlevi kullanılmıştır. Bu işlevi
kullanarak damgamızın ışık geçirgenliğini ayarlayabiliriz. Bu örnekte ışık
geçirgenliği %50 olarak ayarlanmıştır. Uygulamada, kaldırılması zor olduğundan
yarı geçirgen filigran olarak telif haklarının korunmasında kullanılır.
</para>
</section>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->