Add logo, favicon.

Thanks to Michael Sersen for creating images/Logo.svg.

- Add images directory with original SVG logo, favicon, and some
  derivative PNGs of the logo for different purpose.

- Note that license on images/* is CC BY-SA.

- Add utils/img2js.py to take an image and generate a base64 encoded
  data URI string.

- Add base64 encoded data URI screen logo to display in canvas when
  disconnected.
This commit is contained in:
Joel Martin 2011-02-03 11:04:32 -06:00
parent 397c08458b
commit d5b33278ea
12 changed files with 766 additions and 3 deletions

View File

@ -8,3 +8,7 @@ docs/LICENSE.LGPL-3) with the following exceptions:
include/web-socket-js/ : New BSD license. Source code at
http://github.com/gimite/web-socket-js
images/ : Creative Commons Attribution-ShareAlike
http://creativecommons.org/licenses/by-sa/3.0/
Uses of the work must be attributed
to the noVNC project.

View File

@ -1,5 +1,26 @@
Short Term:
- VNC performance and regression playback suite.
- WebSockets
- expand latency test
- add absolute timers (every 500 packets)
- try 1 ms delay
- stop at 4000 packets
- small and large packets test
- JavaScript
- just base64 decode
- everything except Canvas
- Full test
- Without WebSockets
- With replay from python tester
- add higher-resolution multi test
- websockify test with echo and playback functionality
- choosen by client test page on connect
- Keyboard layout/internationalization support
- convert keyCode into proper charCode
@ -24,8 +45,6 @@ Short Term:
Medium Term:
- VNC performance and regression playback suite.
- Viewport support
- Touchscreen testing/support.

1
favicon.ico Symbolic link
View File

@ -0,0 +1 @@
images/favicon.ico

687
images/Logo.svg Normal file
View File

@ -0,0 +1,687 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="512"
height="512"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.47pre4 r22446"
version="1.0"
sodipodi:docname="noVNC_Logo_13.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/home/joelm/Downloads/noVNC_Logo12.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
style="display:inline">
<defs
id="defs4">
<linearGradient
id="linearGradient7584">
<stop
id="stop7586"
offset="0"
style="stop-color:#171717;stop-opacity:1;" />
<stop
id="stop7588"
offset="1"
style="stop-color:#000000;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient5965">
<stop
style="stop-color:#030303;stop-opacity:1;"
offset="0"
id="stop5967" />
<stop
id="stop5973"
offset="0.5"
style="stop-color:#090909;stop-opacity:1;" />
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="1"
id="stop5969" />
</linearGradient>
<linearGradient
id="linearGradient5932">
<stop
style="stop-color:#000000;stop-opacity:0.87450981;"
offset="0"
id="stop5934" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop5936" />
</linearGradient>
<linearGradient
id="linearGradient5333">
<stop
style="stop-color:#ffffff;stop-opacity:0.05;"
offset="0"
id="stop5335" />
<stop
style="stop-color:#4c4c4c;stop-opacity:0;"
offset="1"
id="stop5337" />
</linearGradient>
<linearGradient
id="linearGradient4694">
<stop
style="stop-color:#ffffff;stop-opacity:0.03529412;"
offset="0"
id="stop4696" />
<stop
style="stop-color:#4c4c4c;stop-opacity:0;"
offset="1"
id="stop4698" />
</linearGradient>
<linearGradient
id="linearGradient6989">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop6991" />
<stop
style="stop-color:#0f0f0f;stop-opacity:1;"
offset="1"
id="stop6993" />
</linearGradient>
<linearGradient
id="linearGradient6790">
<stop
style="stop-color:#434343;stop-opacity:1;"
offset="0"
id="stop6792" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop6794" />
</linearGradient>
<linearGradient
id="linearGradient6736">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop6738" />
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="1"
id="stop6740" />
</linearGradient>
<linearGradient
id="linearGradient6720">
<stop
style="stop-color:#303030;stop-opacity:1;"
offset="0"
id="stop6722" />
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="1"
id="stop6724" />
</linearGradient>
<linearGradient
id="linearGradient6702">
<stop
id="stop4688"
offset="0"
style="stop-color:#000000;stop-opacity:0;" />
<stop
id="stop6714"
offset="1"
style="stop-color:#ffffff;stop-opacity:0;" />
</linearGradient>
<linearGradient
id="linearGradient6662">
<stop
style="stop-color:#010000;stop-opacity:1;"
offset="0"
id="stop6664" />
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="1"
id="stop6666" />
</linearGradient>
<marker
inkscape:stockid="Arrow1Send"
orient="auto"
refY="0"
refX="0"
id="Arrow1Send"
style="overflow:visible">
<path
id="path4730"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mstart"
style="overflow:visible">
<path
id="path4721"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="matrix(0.4,0,0,0.4,4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Lstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Lstart"
style="overflow:visible">
<path
id="path4715"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="matrix(0.8,0,0,0.8,10,0)" />
</marker>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="-24.105461 : 505.9325 : 1"
inkscape:vp_y="6.1230318e-14 : 1000 : 0"
inkscape:vp_z="719.98902 : 505.9325 : 1"
inkscape:persp3d-origin="347.94178 : 330.5388 : 1"
id="perspective10" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6720"
id="linearGradient6742"
x1="341.66687"
y1="-253.40732"
x2="470.19839"
y2="-253.40732"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.874106,0,0,1.0453135,43.679874,11.482781)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6790"
id="linearGradient6796"
x1="-32.526917"
y1="294.91821"
x2="653.36664"
y2="294.91821"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient7584"
id="linearGradient6987"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.6520109,0,0,1.5543006,133.44336,136.96388)"
x1="341.66687"
y1="-253.40732"
x2="470.19839"
y2="-253.40732" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6702"
id="linearGradient4686"
gradientUnits="userSpaceOnUse"
x1="159.54247"
y1="443.13766"
x2="430.90103"
y2="443.13766" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4694"
id="linearGradient4700"
x1="229.03033"
y1="461.81128"
x2="393.28391"
y2="461.81128"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4694"
id="linearGradient4966"
gradientUnits="userSpaceOnUse"
x1="229.03033"
y1="461.81128"
x2="393.28391"
y2="461.81128"
spreadMethod="reflect" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5333"
id="linearGradient5339"
x1="271.28635"
y1="294.12686"
x2="490.23206"
y2="294.12686"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5932"
id="linearGradient5938"
x1="-245.06445"
y1="7.705513"
x2="-62.328537"
y2="7.705513"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.5245666,0,0,2.6282551,644.92825,162.55033)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5965"
id="linearGradient5971"
x1="159.54247"
y1="443.13766"
x2="430.90103"
y2="443.13766"
gradientUnits="userSpaceOnUse"
spreadMethod="pad" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient6720"
id="radialGradient7582"
cx="295.22174"
cy="443.13766"
fx="295.22174"
fy="443.13766"
r="135.67928"
gradientTransform="matrix(1,0,0,0.1356784,0,383.01346)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient6720"
id="radialGradient7611"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.1356784,0,383.01346)"
cx="295.22174"
cy="443.13766"
fx="295.22174"
fy="443.13766"
r="135.67928" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4694"
id="linearGradient7613"
gradientUnits="userSpaceOnUse"
spreadMethod="reflect"
x1="229.03033"
y1="461.81128"
x2="393.28391"
y2="461.81128" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5333"
id="linearGradient2913"
gradientUnits="userSpaceOnUse"
x1="271.28635"
y1="294.12686"
x2="490.23206"
y2="294.12686"
gradientTransform="matrix(1.0217389,0,0,1.0105488,-8.1719712,-6.8195787)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5932"
id="linearGradient2916"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.5891218,0,0,2.7050059,653.14704,159.9845)"
x1="-245.06445"
y1="7.705513"
x2="-62.328537"
y2="7.705513" />
<inkscape:perspective
id="perspective2920"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="198.11269"
inkscape:cy="276.37194"
inkscape:document-units="px"
inkscape:current-layer="svg2"
showgrid="false"
inkscape:window-width="1680"
inkscape:window-height="1026"
inkscape:window-x="0"
inkscape:window-y="0"
showborder="false"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Screen"
style="display:inline">
<rect
style="fill:#303030;fill-opacity:1;stroke:none;display:inline"
id="rect6684"
width="473.59906"
height="321.92017"
x="18.594318"
y="19.852146"
inkscape:export-filename="/home/joelm/Downloads/noVNC_screen.png"
inkscape:export-xdpi="121.61401"
inkscape:export-ydpi="121.61401" />
</g>
<g
inkscape:groupmode="layer"
id="layer15"
inkscape:label="Favicon_Box"
style="display:none">
<rect
style="opacity:0;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
id="rect3899"
width="342.5874"
height="342.62888"
x="86.710419"
y="14.318709"
inkscape:export-filename="/home/joelm/Downloads/noVNC_favicon.png"
inkscape:export-xdpi="4.1999998"
inkscape:export-ydpi="4.1999998" />
<rect
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
id="rect3899-5"
width="342.5874"
height="342.62888"
x="86.710419"
y="14.31871"
inkscape:export-filename="/home/joelm/Downloads/noVNC_favicon.png"
inkscape:export-xdpi="4.1999998"
inkscape:export-ydpi="4.1999998" />
</g>
<g
inkscape:groupmode="layer"
id="layer6"
inkscape:label="Base"
style="display:inline">
<path
sodipodi:type="arc"
style="fill:url(#linearGradient5971);fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path6944"
sodipodi:cx="295.22174"
sodipodi:cy="443.13766"
sodipodi:rx="135.67928"
sodipodi:ry="18.408747"
d="m 430.90102,443.13766 a 135.67928,18.408747 0 1 1 -271.35855,0 135.67928,18.408747 0 1 1 271.35855,0 z"
transform="matrix(0.01302703,-0.3700754,8.066322,-0.0237182,-3322.837,581.39212)" />
<path
sodipodi:type="arc"
style="fill:url(#linearGradient4686);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
id="path4684"
sodipodi:cx="295.22174"
sodipodi:cy="443.13766"
sodipodi:rx="135.67928"
sodipodi:ry="18.408747"
d="m 430.90102,443.13766 a 135.67928,18.408747 0 1 1 -271.35855,0 135.67928,18.408747 0 1 1 271.35855,0 z"
transform="matrix(0.01219366,-0.2777519,7.5503003,-0.01780117,-2984.4223,654.88677)" />
</g>
<g
inkscape:groupmode="layer"
id="layer14"
inkscape:label="BaseHighlight"
style="display:inline">
<path
style="fill:none;stroke:#0f0626;stroke-width:3.4000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.9254902;stroke-dasharray:none;marker-mid:none"
d="m 113.22547,451.27721 c -6.48144,25.47482 27.77284,36.00307 33.46034,37.48107 75.48368,19.61581 142.61203,18.18957 201.82073,2.0728 19.20235,-5.22693 38.29352,-12.81118 45.54545,-22.87742 8.91645,-12.37672 -0.92272,-23.26137 -0.92272,-23.26137"
id="path5997"
sodipodi:nodetypes="csssc" />
</g>
<g
inkscape:groupmode="layer"
id="layer10"
inkscape:label="BaseShadow_1"
style="display:inline">
<g
id="g7591"
transform="translate(0,-2.1213203)">
<path
transform="matrix(0.01219366,-0.2777519,7.5503003,-0.01780117,-3095.3084,545.23419)"
d="m 430.90102,443.13766 a 135.67928,18.408747 0 1 1 -271.35855,0 135.67928,18.408747 0 1 1 271.35855,0 z"
sodipodi:ry="18.408747"
sodipodi:rx="135.67928"
sodipodi:cy="443.13766"
sodipodi:cx="295.22174"
id="path6716"
style="fill:url(#radialGradient7611);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
sodipodi:type="arc" />
<path
sodipodi:nodetypes="cscc"
id="path4964"
d="m 316.59702,421.17478 c 0,0 58.23544,7.94555 73.90264,26.394 24.79157,29.19259 -118.30811,67.5501 -242.96933,33.90089 213.50314,-1.39087 169.09283,-60.31728 169.09283,-60.31728"
style="fill:url(#linearGradient7613);fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer5"
inkscape:label="Support"
style="display:inline">
<rect
style="fill:#000000;fill-opacity:0.98453603;fill-rule:nonzero;stroke:url(#linearGradient6987);stroke-width:30;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
id="rect6686"
width="72.335358"
height="30.264278"
x="361.94818"
y="-272.03949"
transform="matrix(0,1,-1,0,0,0)" />
</g>
<g
inkscape:groupmode="layer"
id="layer13"
inkscape:label="ScreenShade"
style="display:inline">
<rect
style="fill:url(#linearGradient2916);fill-opacity:1;fill-rule:nonzero;stroke:none"
id="rect5930"
width="473.12555"
height="321.87091"
x="18.64533"
y="19.892525"
inkscape:export-filename="/home/joelm/Downloads/noVNC_screen.png"
inkscape:export-xdpi="121.61401"
inkscape:export-ydpi="121.61401" />
<path
style="fill:url(#linearGradient2913);fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline"
d="m 492.23643,341.65103 -222.74382,-0.21858 c 0,0 42.71861,-8.28882 90.56766,-25.15824 28.31396,-9.98224 57.59439,-24.1182 83.13673,-38.1986 45.98594,-25.35007 49.03937,-38.90668 49.03937,-38.90668 l 6e-5,102.4821 z"
id="path5331"
sodipodi:nodetypes="ccsscc"
inkscape:export-filename="/home/joelm/Downloads/noVNC_screen.png"
inkscape:export-xdpi="121.61401"
inkscape:export-ydpi="121.61401" />
</g>
<g
inkscape:groupmode="layer"
id="layer9"
inkscape:label="noVNC_Black"
style="display:inline">
<path
sodipodi:nodetypes="cccc"
style="fill:none;stroke:#000000;stroke-width:22.07362747;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 416.69139,186.74564 c -77.95059,0 -77.95059,0 -77.95059,0 l 0,73.23957 80.00192,0"
id="path5134"
inkscape:export-filename="/home/joelm/Downloads/noVNC_screen.png"
inkscape:export-xdpi="121.61401"
inkscape:export-ydpi="121.61401" />
<path
sodipodi:nodetypes="cccc"
style="fill:none;stroke:#000000;stroke-width:22.07362747;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 221.52501,259.96552 0,-74.30876 75.89924,74.67652 0,-73.6827"
id="path5132"
inkscape:export-filename="/home/joelm/Downloads/noVNC_screen.png"
inkscape:export-xdpi="121.61401"
inkscape:export-ydpi="121.61401" />
<g
style="fill:none;stroke:#000000;stroke-width:25.32735443;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="g5128"
transform="matrix(1.0637273,0,0,0.7140646,-87.846677,11.859872)"
inkscape:export-filename="/home/joelm/Downloads/noVNC_screen.png"
inkscape:export-xdpi="121.61401"
inkscape:export-ydpi="121.61401">
<path
sodipodi:nodetypes="cccc"
id="path5130"
d="m 181.27307,243.94727 0,42.42561 69.52825,61.54333 0,-103.59063"
style="fill:none;stroke:#000000;stroke-width:25.32735443;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
<path
sodipodi:nodetypes="cccc"
style="fill:none;stroke:#000000;stroke-width:21.4314537;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 106.33831,159.40077 0,-72.146954 73.69116,72.504004 0,-71.539108"
id="path5136"
inkscape:export-filename="/home/joelm/Downloads/noVNC_screen.png"
inkscape:export-xdpi="121.61401"
inkscape:export-ydpi="121.61401" />
<path
style="fill:none;stroke:#000000;stroke-width:21.4314537;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 219.23536,92.259872 0,71.123858 77.68903,0 -2.0092,-71.123858 c -75.6828,0 -75.67983,0 -75.67983,0 z"
id="path5138"
inkscape:export-filename="/home/joelm/Downloads/noVNC_screen.png"
inkscape:export-xdpi="121.61401"
inkscape:export-ydpi="121.61401" />
</g>
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="noVNC"
style="display:inline">
<g
style="fill:none;display:inline"
id="g5142"
transform="matrix(1.0637273,0,0,0.7140646,-87.924897,11.633929)"
inkscape:export-filename="/home/joelm/Downloads/noVNC_favicon.png"
inkscape:export-xdpi="4.1999998"
inkscape:export-ydpi="4.1999998">
<path
sodipodi:nodetypes="cccc"
id="path5144"
d="m 181.27307,243.94727 0,42.42561 69.52825,61.54333 0,-103.59063"
style="fill:none;stroke:#f2eb41;stroke-width:19.83890915;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
<path
sodipodi:nodetypes="cccc"
style="fill:none;stroke:#f2eb41;stroke-width:17.29026794;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 221.44679,259.73958 0,-74.30877 75.89925,74.67651 0,-73.68269"
id="path5146"
inkscape:export-filename="/home/joelm/Downloads/noVNC_favicon.png"
inkscape:export-xdpi="4.1999998"
inkscape:export-ydpi="4.1999998" />
<path
sodipodi:nodetypes="cccc"
style="fill:none;stroke:#f2eb41;stroke-width:17.29026794;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 416.61319,186.51969 c -77.95061,0 -77.95061,0 -77.95061,0 l 0,73.23958 80.00193,0"
id="path5148"
inkscape:export-filename="/home/joelm/Downloads/noVNC_favicon.png"
inkscape:export-xdpi="4.1999998"
inkscape:export-ydpi="4.1999998" />
<path
sodipodi:nodetypes="cccc"
style="fill:none;stroke:#00df00;stroke-width:16.78725243;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 106.26238,159.1814 0,-72.146955 73.69115,72.503995 0,-71.539084"
id="path5150"
inkscape:export-filename="/home/joelm/Downloads/noVNC_favicon.png"
inkscape:export-xdpi="4.1999998"
inkscape:export-ydpi="4.1999998" />
<path
style="fill:none;stroke:#00df00;stroke-width:16.78725243;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 219.15941,92.040508 0,71.123862 77.68904,0 -2.00919,-71.123862 c -75.68283,0 -75.67985,0 -75.67985,0 z"
id="path5152"
inkscape:export-filename="/home/joelm/Downloads/noVNC_favicon.png"
inkscape:export-xdpi="4.1999998"
inkscape:export-ydpi="4.1999998" />
</g>
<g
inkscape:groupmode="layer"
id="layer7"
inkscape:label="noVNC_Save"
style="display:none">
<g
style="display:inline"
id="g3903"
transform="matrix(0.9560363,0,0,0.9560363,-6.710991,-337.27245)">
<g
transform="matrix(1.0081199,0,0,1.0081199,-11.487266,-121.24134)"
id="g3905"
style="fill:none">
<path
style="fill:none;stroke:#00ff00;stroke-width:19.83890915;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 83.455645,199.50003 101.674295,0"
id="path3907"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#00ff00;stroke-width:19.83890915;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 81.687109,243.94727 99.585961,0 0,42.42561 79.06591,61.54333 0,-103.59063"
id="path3909"
sodipodi:nodetypes="ccccc" />
<path
style="fill:none;stroke:#00ff00;stroke-width:19.83890915;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="M 87.323416,283.46826 175.10772,160.81511"
id="path3911"
sodipodi:nodetypes="cc" />
</g>
<path
id="path3913"
d="m 289.84756,229.03542 0,-104.90947 71.93153,105.42866 0,-104.02559"
style="fill:none;stroke:#00ff00;stroke-width:20;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
sodipodi:nodetypes="cccc" />
<path
id="path3915"
d="m 472.59255,125.66322 c -73.87564,0 -73.87564,0 -73.87564,0 l 0,103.4 75.81973,0"
style="fill:none;stroke:#00ff00;stroke-width:20;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
sodipodi:nodetypes="cccc" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="Bezel"
style="display:inline">
<rect
style="fill:none;stroke:#040404;stroke-width:24.66699982;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
id="rect6660"
width="485.7326"
height="337.33023"
x="14.179501"
y="14.179514" />
</g>
<g
inkscape:groupmode="layer"
id="layer8"
inkscape:label="BezelHighlight"
style="display:inline">
<rect
style="fill:none;stroke:#100626;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:0.89803922;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
id="rect3888"
width="485.7326"
height="337.33023"
x="13.819346"
y="14.179423" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 25 KiB

BIN
images/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
images/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 453 B

BIN
images/full_512x512.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
images/screen_640x435.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

1
include/logo.js Normal file

File diff suppressed because one or more lines are too long

View File

@ -8,7 +8,7 @@
"use strict";
/*jslint white: false, browser: true, bitwise: false, plusplus: false */
/*global window, WebSocket, Util, Canvas, VNC_native_ws, Base64, DES */
/*global window, Util, Canvas, VNC_native_ws, Base64, DES */
function RFB(conf) {
@ -347,6 +347,16 @@ updateState = function(state, statusMsg) {
if (Util.get_logging() !== 'debug') {
canvas.clear();
}
if ((Util.get_logging() !== 'debug') ||
(state === 'loaded')) {
// Show noVNC logo on load and when disconnected if
// debug is off
if (noVNC_logo) {
canvas.resize(noVNC_logo.width, noVNC_logo.height);
canvas.blitStringImage(noVNC_logo.data, 0, 0);
}
}
}
ws.close();

View File

@ -32,6 +32,7 @@ function get_INCLUDE_URI() {
extra += start + "util.js" + end;
extra += start + "webutil.js" + end;
extra += start + "logo.js" + end;
extra += start + "base64.js" + end;
extra += start + "websock.js" + end;
extra += start + "des.js" + end;

40
utils/img2js.py Executable file
View File

@ -0,0 +1,40 @@
#!/usr/bin/python
#
# Convert image to Javascript compatible base64 Data URI
# Copyright 2011 Joel Martin
# Licensed under LGPL version 3 (see docs/LICENSE.LGPL-3)
#
import sys, base64
try:
from PIL import Image
except:
print "python PIL module required (python-imaging package)"
sys.exit(1)
if len(sys.argv) < 3:
print "Usage: %s IMAGE JS_VARIABLE" % sys.argv[0]
sys.exit(1)
fname = sys.argv[1]
var = sys.argv[2]
ext = fname.lower().split('.')[-1]
if ext == "png": mime = "image/png"
elif ext in ["jpg", "jpeg"]: mime = "image/jpeg"
elif ext == "gif": mime = "image/gif"
else:
print "Only PNG, JPEG and GIF images are supported"
sys.exit(1)
uri = "data:%s;base64," % mime
im = Image.open(fname)
w, h = im.size
raw = open(fname).read()
print '%s = {"width": %s, "height": %s, "data": "%s%s"};' % (
var, w, h, uri, base64.b64encode(raw))