[ASP] 썸네일 제작 컴포넌트

프로그래밍/PHP|2015. 1. 27. 11:39
반응형

썸네일 만들어 주는 컴포넌트입니다.

 

사용방법도 무지 간단하더군요.

 

KMSThumbNail은 이미지(TIF, TIFF, GIF, JPG, JPEG, BMP, PNG)  파일을 썸네일파일(JPG, GIF)로 만들어 주는 ActiveX Dll입니다.

 

예제)

---------------------------------------------------------------------------------------------------------

Dim FName

Dim TestThumb

 

FName = Server.MapPath (".") & "test.BMP" '이미지 파일의 절대 경로

 

Set TestThumb = Server.CreateObject("KMSThumb.Thumb")

   TestThumb.FileName = FName '절대경로를 넘겨줌

   '절대 경로가 없으면 썸네일 파일이 만들어지지 않습니다.

 

   TestThumb.Width = 100 '생성될 썸네일의 가로 크기를 지정(default 100)

   ' Width 는 1~999까지 가능

 

   TestThumb.Height = 100 '생성될 썸네일의 세로 크기를 지정(default 100)

   ' Height 는 1~999까지 가능

 

   TestThumb.Quality = 100 '생성될 썸네일의 이미지 Quality(JPG로 생성시만 적용)(default 100)

   ' Quality 는 1~999까지 가능 - 100이상이면 의미가 없습니다.

 

   TestThumb.ImgGB = 1 '1이면 JPG, 2이면 GIF로 썸네일 생성(default 1)

 

   TestThumb.ImgScale = 2 '2이면 Scale Mode, 1이면 지정한 Height, Width로 썸네일 생성(default 1)

   '원본 1000,1500의 이미지가 있을시 100,100으로 썸네일을 생성하면 이미지의 세로가 축소 변경이 된다.

   '위의 이미지는 100, 150으로 생성을 하면 이미지 변경없이 썸네일의 이미지가 만들어질 것이다.

   '그래서 ImgScale란 것을 만들어 보았다.

   'ImgScale가 2이면 이 방법이 적용이 된다.

   '원본의 이미지와, 생성될 썸네일의 이미지를 비교하여 가로,세로중 썸네일 이미지가 큰 것의 길이에 따른다.

   ' ex) 1000,500 을 100,100으로 적용하면(ImgScale = 2)

   ' -> 100,50 으로 썸네일 이미지가 생성이 된다.

   ' ex2) 500,1000 을 100,100으로 적용하면(ImgScale = 2)

   ' -> 50,100 으로 썸네일 이미지가 생성이 된다.

 

'추가

TestThumb.FrontStr = "KMS_"

'FrontStr을 이용하여 기존의 Thumb_로 통일되어 있던 앞의 이미지명을 바꿀수 있습니다.

'위와 같이 한다면 "KMS_이미지명.jpg"라고 썸네일이 생성이 되게 됩니다.

' ex) KMS_test.jpg

 

 

   TestThumb.SaveThumb '썸네일 생성 메소드

 

'추가

response.write TestThumb.imgStr

'썸네일의 이미지명을 반환합니다.  - 결과값 => KMS_test.jpg

 

Set TestThumb = nothing

---------------------------------------------------------------------------------------------------------

 

 

업그래이드 방법은 zip파일에 포함된 Readme.txt를 꼭 읽어 주세요..(3. 설치편)

 

[출처] 프로그래머들의 세계 | 필더 (http://cafe.naver.com/programmers/120)


썸네일컴포넌트.zip


반응형

'프로그래밍 > PHP' 카테고리의 다른 글

[PHP] 특정문자로 자르기 (나누기)  (0) 2015.01.27
[ASP] 전화번호에서 하이픈(-) 제거  (0) 2015.01.27
[JSP] Hello, JSP!!! 출력 소스  (0) 2015.01.27
한글 문자열 자르기  (0) 2015.01.27
[php] 문자열 자르기  (0) 2015.01.27

댓글()

[JSP] Hello, JSP!!! 출력 소스

프로그래밍/PHP|2015. 1. 27. 11:39
반응형

<html>
<body>
<% 
String str = request.getParameter("name");
if(str == null)
{ str = "JSP"; }
%> 
Hello, <%= str %>!!! 
</body>
</html>
 

 

[출처] Think | 재뇽 (http://timetothink.tistory.com/78)

반응형

댓글()

한글 문자열 자르기

프로그래밍/PHP|2015. 1. 27. 11:39
반응형

'최근 게시글' 등의 제목에서 한글깨짐없이 몇 byte 만 추출 해올 수 있습니다.

 

$head = mb_strimwidth($head, 0, 26, "..", "EUC-KR");


반응형

댓글()

[php] 문자열 자르기

프로그래밍/PHP|2015. 1. 27. 11:38
반응형

 substr()

Returns the extracted part of string, or FALSE on failure or an empty string.

문자열의 압축을 푼 일부를 반환하거나, FALSE를 장애 또는 빈 문자열에.(구글번역ㅠㅠ)

■ 원형

string substr ( string $string , int $start [, int $length ] )

■ 인수

$string = 오려낼 문자열

$start =  오려낼 시작지점

$Length = 오려낼 범위

■ 예제

<?php
$str = "PHP should I study";
$cstr = substr($str, 4, 6);

echo $cstr;
?>

■ 결과

should


■ php.net 예제

<?php
$rest 
substr("abcdef"0, -1);  // 반환값 "abcde"

$rest substr("abcdef"2, -1);  // 반환값 "cde"
$rest substr("abcdef"4, -4);  // 반환값 false
$rest substr("abcdef", -3, -1); // 반환값 "de"
?>

= 설명(제 생각이므로 틀릴수도있습니다 0_0;;)

$rest substr("abcdef"0, -1);  // 반환값 "abcde"

0(문자열 처음부터), -1(마지막문자 1자리(f) 를 제외) 반환

$rest substr("abcdef"2, -1);  // 반환값 "cde"

2(문자열 2번째 자리부터), 끝자리 왼쪽으로 한자리를 제외한 문자열 반환

$rest substr("abcdef"4, -4);  // 반환값 false

문자열 4번째자리부터(abcdef), 끝자리에서 왼쪽으로 4번째자리까지(abcdef)

하지만 범위가 시작점부터 뒤에 있으므로 False(안됌)

$rest substr("abcdef", -3, -1); // 반환값 "de"

문자열 끝에서 왼쪽으로 3칸앞(abcdef),문자열 끝에서 왼쪽으로 1칸앞(abcdef)

 

[출처] 코딩덕후 (http://c_study_s.blog.me/30132617539)

반응형

댓글()

echo "" 구문 안의 스타일시트가 적용이 되지 않을때

프로그래밍/PHP|2015. 1. 27. 11:38
반응형

큰따옴표를 ' 작은따옴표로 바꾸시고요

 

만약 그 안에 작은따옴표가 들어간다면

 

큰따옴표 앞에 를 붙여주세요

 

echo ("onmouseover="this.bgColor='#efefef';"");

 

이런식으로 해주시면 됩니다..^^

 

[출처] 지식인 (http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040203&docId=68776888&qb=ZWNobyDslYjsl5AgJw==&enc=utf8&section=kin&rank=2&search_sort=0&spq=1&pid=g/gyuc5Y7tNssu35dKdssc--065608&sid=T-TyCAnL9E8AAC3JGDc)

반응형

댓글()

세션을 이용한 로그인 로그아웃(php)

프로그래밍/PHP|2015. 1. 27. 11:36
반응형

CREATE TABLE sess_test ( no int(4) unsigned NOT NULL auto_increment, sess_id char(10) NOT NULL default '', sess_passwd char(25) NOT NULL default '', level int(1) NOT NULL default '0', PRIMARY KEY (no) ) TYPE=MyISAM; 

먼저 위의 스키마처럼 테이블을 생성합니다. 
sess_id 는 유저 아이디가 저장될 필드 이름입니다. 
sess_passwd 는 유저 패스워드가 저장될 필드 이름입니다. 
level 은 회원들의 레벨,즉 관리자와 일반회원을 구분하기 위한 필드 입니다. 
편의상(제 임의대로) level 9가 관리자, level 1 이 일반회원으로 구분 하기 위합입니다. 
지금 강좌에선 단순히 로그인 로그아웃 처리만... 하겠습니다. 
관리자 비회원 구분도... 디비에서 불러온 level 의 판단으로 이루어지므로 그리 어렵지 않습니다.




connect.php 의 구성 

아래처럼 connect.php 를 구성합니다. 디비와 연결 하는 부분이므로... 디비와 연동되는 페이지는 incldue 하여 사용합니다. 

<? $localhost="localhost"; $user_id="root"; //디비 접근 아이디 
$user_passwd=""; //디비 접근 패스워드 
$db_name=""; //접근할 디비 이름 //mysql 에 접속하기 위한 구문... 이 파일을 테이블에 접근할 페이지에 include 하여 사용한다. 
$connect=mysql_connect("$localhost","$user_id","$user_passwd") or die("SQL server에 연결할수 없습니다."); mysql_select_db("$db_name",$connect); ?>




sess_func.php 의 구성 페이지 이동함수 메세지 출력 함수를 정의 한 파일입니다. 

<? //페이지 이동 함수 

function GoGo($url) { 
global $connect; echo"<meta http-equiv="refresh" content="0; url=$url">"; 
if($connect) @mysql_close($connect); exit; 
} //메세지 보여주는 함수 메세지창 //메세지를 보여주고 뒤로 백한다 

function message($msg) {
echo(" <html><head> <script name=javascript> window.alert('$msg'); history.go(-1); </script> </head></html> "); 
exit; 
} //메세지를 보여주고 가고자할 페이지로 이동한다... 

function GoTo($msg="",$url) { 
global $connect; 
echo(" <html><head> <script name=javascript> window.alert('$msg'); </script> </head></html> "); 
echo"<meta http-equiv="refresh" content="0; url=$url">"; if($connect) @mysql_close($connect); exit; 
} ?>





회원가입폼

session_member.php 
<? 
session_cache_limiter(''); 
session_start(); 
include "connect.php"; //디비에 접근하기위해 정의한 페이지를 include 시킨다.... 
include"sess_func.php"; // 함수를 정의한 페이지를 include 시킨다... 
//테이블을 생성한다음 
//session_cache_limiter('') 와 session_start(); 를 위와 같이 선언해 줍니다. 
//session_start 는 세션을 사용하겠다고 선언해주는 것입니다. 
//session_cache_limiter('') 를 해주는건 만료된 페이지입니다... 를 보여주지 않게 해주기 위함입니다. 
//저는 mode 라는 변수를 써서 한페이지에 값(아이디와 패스워드)를 입력받는 처리와 
//값이 테이블에 저장되는 코드를 구분하였습니다. 
//만약 mode 라는 변수에 값이 없다면... 즉, 처음 이 페이지를 호출하게 되면 mode 라는 변수에 값이 
//들어 있지 않게 되므로 .... 입력받는 폼만 보여주게 됩니다. 
//$PHP_SELF 는 자기자신(현재페이지를)을 나타내는 php 변수 입니다. 
//$PHP_SELF 를 쓰면 Submit 을 클릭했을시 자기자신 즉 session_member.php 를 호출 하게 되겠죠... 
//그리고 input type=hidden 으로 변수 이름은 mode 값은 ok 를 주었으므로 
//submit 을 클릭하면 $mode 변수에 ok라는 값이 들어가서 session_member.php 를 호출하게 됩니다. 

if(!$mode) { 
echo(" <form name=sign method=post action=$PHP_SELF> <input type=hidden name=mode value=ok> <table border=1 cellpadding=0 cellspacing=0> <tr> <td>ID</td> <td><input type=text name=id size=12 maxlength=10></td> </tr> <tr> <td>Passwd</td> <td><input type=password name=passwd size=12 maxlength=10></td> </tr> <tr> <td colspan=2 align=center><input type=submit value=Submit></td> </tr> </table> </form> "); 
} //위에서 정의한 폼의 값이 넘어오게 됩니다. 
//위의 폼에서 input type=hidden 으로 mode 란 변수를 선언하고 값은 ok 를 주었으므로 
//이리로 값이 넘어 오게 되겠죠^^ 
if($mode==ok) { //공백.. 값을 입력시키지 않으면 메세지를 뿌린다. 
if(!ereg("([^[:space:]])",$id)) message("id를 입력하세요"); 
if(!ereg("([^[:space:]])",$passwd)) message("password 를 입력하세요"); //sql 에 접근해서 입력한 아이디와 같은 아이디가 있는지 찾는다. 
$sql=mysql_query("select * from sess_test where sess_id='$id'") or die(mysql_error()); 
$check=mysql_num_rows($sql); //만약 check 변수에 값이 있으면 똑같은 아이디가 있는것이 되겠죠? 
//그럼 메세지창을 뿌립니다. 
if($check) message("같은 아이디가 있습니다. 다른아이디로 해주세요!!"); //그렇지 않다면... 즉 같은 아이디가 없다면 값을 입력합니다. 
//입력시 관리자가 아니므로 레벨은 1 로 입력 합니다.... 
else { 
$sql=mysql_query("insert into sess_test values('','$id','$passwd',1)") or die(mysql_error()); 
GoTo("가입하셨습니다","session_start.php"); } 
}




회원체크

session_start.php 
<? 
session_cache_limiter(''); 
session_start(); //테이블을 생성한다음 
//session_cache_limiter('') 와 session_start(); 를 위와 같이 선언해 줍니다. 
//session_cache_limiter('') 를 해주는건 만료된 페이지입니다... 를 보여주지 않게 해주기 위함입니다. 
//현재 세션레지스터 안에 값이 없어서 로그인 하지 않은 상태라면 
//폼네임은 login 이고 
//text Box 에서 입력 받은 값은 id,passwd 변수로 sess_login.php 페이지 로넘아가게 됩니다. 
if(!$HTTP_SESSION_VARS) { 
echo(" <form name=login method=post action=sess_login.php> <table border=1 cellpadding=0 cellspacing=0> <tr> <td>ID</td> <td><input type=text size=10 name=id maxlength=10></td> </tr> <tr> <td>Passwd</td> <td><input type=text size=10 name=passwd maxlength=10></td> </tr> <tr> <td colspan=2 align=center><input type=submit value=Submit><input type=reset value=Reset></td> </tr> </table> </form> "); 

//세션 레지스터 level 이란 세션 변수 안에 값이 있다면... 값이 무엇이든지 간에 로그인 한 상태라면 
//아래의 상태를 보여줍니다. 
else {
echo(" <table border=1 cellpadding=0 cellspacing=0> <tr> <td>$HTTP_SESSION_VARS[sess_id] 님 로그인...</td> </tr> <tr> <td><a href="sess_logout.php>로그아웃</a></td> </tr> </table> </form> ); 

?>




로그인

sess_login.php 넘어온 값을 세션레지스터에 넣어서 로그인 시킵니다. 
<? 
session_cache_limiter(''); 
session_start(); 
include "connect.php"; //디비 정의 페이지 
include include "sess_func.php"; //함수 정의 페이지 include 
//넘어온 아이디와 패스워드 값으로 sess_test 테이블에 접근하여 해당하는 
//필드를 배열형태로 가져옵니다. 
$sql=mysql_query("select * from sess_test where sess_id='$id' && sess_passwd='$passwd'") or die(mysql_error()); 
$row=mysql_fetch_array($sql); //아이디와 패스워드가 일치하는 사용자가 없으면...(입력된 사용자가 없으면) 메세지를 뿌린다. 
if(!$row) message("그런 사용자는 없습니다."); 
else { //여기 부터 중요 //배열형태로 가져온 필드에 에서 sess_id 필드 즉 id 를 sess_id 란 변수에 넣어주고 
//level 을 $sess_level 변수에다 넣어줍니다. 
//그리고 난후에 세션 에다 그 값을 넣어주는 거죠^^ 
$sess_id=$row[sess_id]; 
$sess_level=$row[level]; 
session_register(sess_id); 
session_register(sess_level); 
GoGo("session_start.php"); } 
?>




로그아웃

세션을 이용한 로그인 로그아웃 마지막 입니다. 
로그아웃 하는 부분입니다. 
제가 로그인 로그아웃 을 구현할때 사용하는 방식을 거의 다 기술 하였습니다... 
처음 세션을 다룰때 정말 삽질 많이 했었읍니다. 
세션의 개념만 잘 이해하고 있으면...쉽게 구현할수 있습니다. 
허접하지만... 잘 봐주시고 엽기적으로 응용 해주세요 회원 수정, 삭제 부분은 넣지 않았습니다. 
태그부분도 잡 태그는 넣지않아 보기 편하도록 노력 하였습니다. 
그럼... 즐 프 하시길^^ 
sess_logout.php 
<? 
session_cache_limiter(''); 
session_start(); 
include"sess_func.php"; //로그아웃 
//아래와 같이 session_unregister 로 세션 레지스터를 날리고 
//session_destroy 로 생성된 세션 을 지워줍니다 
session_unregister(sess_id); 
session_unregister(sess_level); 
session_destroy(); 
GoTo("Logout 하셨습니다.","session_start.php"); 
?> 

출처 : 미니위니

[출처] 플래시 카페 | 색시유져 (http://cafe.naver.com/q69/8058)

반응형

댓글()

[php 또는 javascript] 달력 소스

프로그래밍/PHP|2015. 1. 27. 11:36
반응형

아래 소개하고 있는 소스 코드는 스크립트 언어 PHP 또는 자바스크립트를 이용해 달력을 출력하는 비교적 간단한 웹프로그램입니다. 두가지 소스중 하나를 실행 시키면 아래와 같은 이미지 처럼 출력이 됩니다. 달력을 만들기 위해서는 그 달의 첫 날짜와 마지막 날짜를 계산해야 하며 요일에 따라 글자의 색을 변화 시켜 줘야 합니다. 이해를 돕기 위해 되도록 소스 코드를 단순화 시켰으므로 코드를 차근 차근 살펴보면 이해가 되리라 생각됩니다. 달력이 투박해 보인다면 좀더 세련되게 업그레이드 해보세요.^^

사용자 삽입 이미지


 

 

[PHP로 달력 만들기 소스 코드]

<?php
function calendar(){
    $year date("Y");
    $month date("n");
    $day date("d");
    $day_max date("t",mktime(0,0,0,$month,1,$year));
    $week_start date("w",mktime(0,0,0,$month,1,$year));
    $0;
    $0;
    $html "<div class='calendar_box'><div class='calendar_title B'>".sprintf("%d-%02d-%02d",$year,$month,$day)."</div>";
    while ($j<$day_max){
        if ($i<$week_start) {
            $html .= "<div class='calendar_text'>·</div>";
        else {
            if ($i%7==0$font_color " RED";
            else if ($i%7==6$font_color " BLUE";
            else $font_color "";
            if ($day == ($j+1)) $font_weight " B"else $font_weight "";
            $html .= "<div class='calendar_text$font_color$font_weight'>" . ($j+1) . "</div>";
            $++;
        }
        $++;
    }
    while ($i%7!==0){
        $html .= "<div class='calendar_text'>·</div>";
        $++;
    }
    $html .= "<div class='calendar_tail'></div></div>";
    return $html;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style>
body {font-family: Verdana, Dotum; line-height:20px;}
.B {font-weight:bold}
.box {width:185px; text-align:centerborder:1px solid #dddddd}
.calendar_box {width:175px; padding:5px}
.calendar_text {width:25px; float:left; text-align:centerfont-size:12px}
.RED {color:red}
.BLUE {color:blue}
.calendar_title {margin:0px; text-align:centerfont-size:12px; background-color:#999999; color:#ffffff}
.calendar_tail {clear:both;}
</style>
<title>PHP로 달력 만들기</title>
</head>
<body>
<div class="box">
<?=calendar();?>
</div>
</body>
</html>


[자바스크립트로 달력 만들기 소스 코드]

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>자바스크립트로 달력 만들기</title>
<style>
body {font-family: Verdana, Dotum; line-height:20px;}
.B {font-weight:bold}
.box {width:185px; text-align:centerborder:1px solid #dddddd}
.calendar_box {width:175px; padding:5px}
.calendar_text {width:25px; float:left; text-align:centerfont-size:12px}
.RED {color:red}
.BLUE {color:blue}
.calendar_title {margin:0px; text-align:centerfont-size:12px; background-color:#999999; color:#ffffff}
.calendar_tail {clear:both;}
</style>
<script>
function calendar(){
    var today = new Date();
    var year = today.getFullYear();
    var month = today.getMonth() + 1;
    var day = today.getDate();
    var week_start = new Date(year,month-1,1).getDay();
    var day_max = get_day_max(year,month-1);
    var i = 0;
    var j = 0;
    var html = "<div class='calendar_box'><div class='calendar_title B'>" + year + "-" + get_number_str(month) + "-" + get_number_str(day) + "</div>";
    while (j < day_max){
        if (i < week_start) {
            html += "<div class='calendar_text'>·</div>";
        else {
            if (i%7==0) font_color = " RED";
            else if (i%7==6) font_color = " BLUE";
            else font_color = "";
            if (day == (j+1)) font_weight = " B"else font_weight = "";
            html += "<div class='calendar_text" + font_color + font_weight + "'>" + (j+1) + "</div>";
            j ++;
        }
        i ++;
    }
    while (i%7!==0){
        html += "<div class='calendar_text'>·</div>";
        i ++;
    }
    html += "<div class='calendar_tail'></div></div>";
    return html;
}
function get_day_max(year,month){
    var i = 29, cday;
    while(i<32){
        cday = new Date(year,month,i);
        if (cday.getFullYear()!=year || cday.getMonth()!=month) break;
        i++;
    }
    return i-1;
}
function get_number_str(num){
    if (num<10) num = '0' + num;
    return num;
}
</script>
</head>
<body>
<div class="box">
<script>
document.write(calendar());
</script>
</div>
</body>
</html>


[출처] http://hompy.info/565

반응형

댓글()

php 페이지 내용중 일부만 캐릭터셋 변경하기

프로그래밍/PHP|2015. 1. 27. 11:36
반응형

<? echo iconv ("euc-kr", "utf-8", "$text"); ?>

 

설명 : euc-kr 로 되어있는 $text 를 utf-8로 출력


반응형

댓글()

[php] 숫자 세자리 수마다 콤마(,) 찍어주기

프로그래밍/PHP|2015. 1. 27. 11:35
반응형

$count = "250000";

$number = number_format("$count");

echo "$number";

 

결과값 : 250,000

 

반응형

댓글()

for 문을 이용해 변수(문자+숫자 형태)를 출력 (변수 두개)

프로그래밍/PHP|2015. 1. 27. 11:35
반응형

[소스]

for ($a="1";$a<10;$a++) {

echo ${'name'.$a};

echo "<br>";

}

 

[결과]

$name1 변수의 내용이 출력되고 다음행에 $name2 변수의 내용이 출력되고... (생략)

끝으로 $name9 변수의 내용이 출력됩니다.


이것이 활용되는 때는..

$name1, name2.. 등의 변수가 많아서 for문을 이용할때 사용합니다.

아래와 같이 사용했을때는 되지 않습니다.

echo "$name$a";    // 잘못된 예

$name 값이 없으므로 결과는 아래와 같습니다.

1

2

3

...


반응형

댓글()

php 숫자 끝의 두자리만 출력

프로그래밍/PHP|2015. 1. 27. 11:35
반응형

$date = "20111229";

substr("$date", -2);
 

결과 : 29

 

반응형

댓글()