delphi2007 教程

delphi2007 教程

首页 新随笔 联系 聚合 管理
  1013 Posts :: 0 Stories :: 28 Comments :: 0 Trackbacks

#

弱弱的问一下,释放图像是用Free,还是用FreeAndNil() Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20061008161749264.html
 
  Bitmap:=TBitmap.Create();  
  ......  
   
  要释放Bitmap是用:  
  Bitmap.Free();  
  还是用:  
  FreeAndNil(Bitmap);

FreeAndNil(Bitmap)   相当于以下两个语句  
  Bitmap.Free;  
  Bitmap   =   nil;  
   
  如果你释放后,   不会使用到Bitmap,   如:   不会使用  
  if   Assigned(   Bitmap)   then  
  或  
  if   Bitmap   =   nil   then  
  则使用   Bitmap.Free,   会少消耗几个指令周期  
 

顶一下

正解

顶1楼

怎么都行,无所谓,和你1G内存比,一两个字节小CASE

顶一下

接分~~~~  
   
   
  用FreeAndNil吧,这个好

posted @ 2009-03-13 10:30 delphi2007 阅读(186) | 评论 (0)编辑 收藏

用GraphicEx将Bmp转PNG,转出后还是BMP格式.不知如何写?请帮忙 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20061008142348265.html
png   :=   TPNGGraphic.Create;  
              try  
                  Image1.Picture.LoadFromFile(sBmpName);  
                  if   Image1.Picture.Graphic   is   TBitmap   then  
                        png.Assign(Image1.Picture.Graphic)  
                  else  
                  begin  
                      png.PixelFormat   :=   pf16bit;  
                      png.Width   :=   Image1.Picture.Width;  
                      png.Height   :=   Image1.Picture.Height;  
                      png.Canvas.Draw(0,   0,   Image1.Picture.Graphic);  
                  end;  
                  png.SaveToFile(sSaveName);  
              finally  
                  png.Free;  
              end;

用GDI+  
  function   TmainForm.SaveFileToPng(SaveBmp:TBitMap32;FileName   :String):Boolean;  
  var  
    B:TBitmap32;  
    encoderClsid:   TGUID;  
    TempGBitmap   :TGPbitmap;  
    i,j   :integer;  
    color:   Cardinal;  
    stat:   TStatus;  
  begin  
      result   :=false;  
      B   :=TBitMap32.Create;  
      B.DrawMode   :=   dmBlend;  
      B.Assign(SaveBmp);  
      TempGBitMap   :=TGPbitMap.Create(B.width,   B.height,   PixelFormat32bppARGB);  
      for   i   :=0   to   B.Width   -1   do  
        for   j   :=0   to   B.Height   -1   do  
          begin  
                Color:=B.Pixel[i,j];  
                TempGBitMap.SetPixel(i,j,Color);  
            end;  
      GetEncoderClsid('image/png',   encoderClsid);  
      stat   :=   TempGBitMap.Save(FileName,   encoderClsid,   nil);  
      if   Stat=Ok   then  
          result   :=true;  
  end;

请参见下面帖中我的回复:  
   
  http://community.csdn.net/Expert/topic/5172/5172039.xml?temp=.6034052

posted @ 2009-03-13 10:30 delphi2007 阅读(519) | 评论 (0)编辑 收藏

类似saynsay的多人视频,顶者有分啦 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20061008110418266.html
主要特点:  
      1、P2P结构,最大限度降低服务器要求,实践证明,10M独享即可支持上千在人线  
      2、10人音视频群聊  
      3、独特的点对点网络,图像清晰,语音质量一流  
      4、同时支持固定房间和动态房间,用户可以自建房间  
      5、特色表情,更添乐趣  
   
  http://www.hxsoft.com.cn  
  QQ:332990638

顶~顶~

ding

:)

posted @ 2009-03-13 10:30 delphi2007 阅读(731) | 评论 (4)编辑 收藏

能告诉我怎么样实现photoshop中剪切时的光标效果, Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20061007113228267.html
在图像处理时,怎么实现类似于photoshop剪切时的那种效果,就是在光标移动时那个亮的矩形框会不断的变化  
  我在用做时始终不得其解  
  我用多一个image在每次画框边时先把要操作的那个  
        image2.Picture:=image1.Picture;  
        rectto:=rect(0,0,image1.Width,image1.Height);  
        image1.Canvas.CopyRect(rectto,image2.Canvas,rectto);  
        image1.Canvas.MoveTo(x,y);  
        image1.Canvas.LineTo(cut_x,y);  
        image1.Canvas.LineTo(cut_x,cut_y);  
        image1.Canvas.LineTo(x,cut_y);  
        image1.Canvas.LineTo(x,y);  
   
  但还是不能实现那种效果  
 
posted @ 2009-03-13 10:30 delphi2007 阅读(146) | 评论 (0)编辑 收藏

如何将一条已经发生旋转的直线经过旋转后恢复到原来的水平状态? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20061005165649268.html
如何将一条本来水平但已经发生旋转(旋转的角度不知)的直线经过旋转后,恢复到原来的水平状态?  
 

通过直线就可以计算其与水平的夹角,   然后不就行了

如果要旋转,必定有一个中心,围绕他旋转。  
  旋转也非常简单,只要过中心做条水平线就行了。  
   
  不过,计算机上表示直线,也是用没有端点的线段来表示的。  
  一般情况下,旋转后,两个端点的位置还要和旋转前相对应。这个相对应,旋转前后相继的两个端点都在同一个园上。

给出详细代码好吗?

只要知道中心点的位置,直接重画一条直线不就行了?

posted @ 2009-03-13 10:30 delphi2007 阅读(124) | 评论 (0)编辑 收藏

如何获取屏幕上当前最前面的一幅图像从左上角到右下角的每一个像素 RGB 的值? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20061005161844269.html
如何获取屏幕上当前最前面的一幅图像从左上角到右下角的每一个像素   RGB   的值?  
  是屏幕上的像素,不是表单上的像素.

procedure   TForm1.Button1Click(Sender:   TObject);  
  var  
      dc:   HDC;  
      b:   TBitmap;  
  begin  
      dc   :=   GetDC(HWND_DESKTOP);  
      try  
          b   :=   Image1.Picture.Bitmap;  
          b.Width   :=   Screen.Width;  
          b.Height   :=   Screen.Height;  
          BitBlt(b.Canvas.Handle,   0,   0,   Screen.Width,   Screen.Height,  
              dc,   0,   0,   SRCCOPY);  
      finally  
          ReleaseDC(HWND_DESKTOP,   dc);  
      end;  
  end;  
   
  从TBitmap中怎么取像素就不用我说了吧  
 

正解:)

posted @ 2009-03-13 10:30 delphi2007 阅读(245) | 评论 (0)编辑 收藏

高手请进,DRAWGRID问题,急等!!!!!! Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20061003171403270.html
有一个drawgrid控件,设置为5行5列,要在每个单元格中写入不同的数据(文本,要可以换行,每行文本可自定义,自定义颜色),如何实现?  
   
  谢谢!!!!

procedure   TForm1.DrawGrid1DrawCell(Sender:   TObject;   ACol,   ARow:   Integer;  
  Rect:   TRect;   State:   TGridDrawState);  
  var  
  bmp:   TBitmap;  
  begin  
   
  if   (ARow<>0)   then  
  begin  
  if   ACol=1   then//第一列画图  
  begin  
    bmp:=   TBitmap.Create;  
    bmp.LoadFromFile('c:\11.bmp');  
    DrawGrid1.Canvas.FillRect(Rect);  
    DrawGrid1.Canvas.CopyRect(Rect,bmp.Canvas,bmp.Canvas.ClipRect);  
    bmp.Free;  
  end;  
  if   acol=2   then   //第二列换行字符串  
  begin  
    DrawGrid1.Canvas.FillRect(Rect);  
    DrawText(DrawGrid1.Canvas.Handle,  
  pchar('字符串字符串字符串字符串字符串字符串字符串字符串'),  
  Length('字符串字符串字符串字符串字符串字符串字符串字符串'),  
  Rect,  
  DT_WORDBREAK   or   DT_CENTER);  
  end;  
  end;  
  end;

从delphi里拷贝过来怎么这个样子了?  
  ft,楼主在字符串换行的地方需要设置一下rowwidth

posted @ 2009-03-13 10:30 delphi2007 阅读(700) | 评论 (0)编辑 收藏

关于盛大热血传奇(传奇2)!!! Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20061001095450271.html
请教一下,哪位高人看过传奇服务器端代码,关于武器升级的算法到底是怎么设计的?谢谢!!!

帮顶~

昏  
  你想把裁决升到攻0-100啊

没有玩过,帮顶

d

posted @ 2009-03-13 10:30 delphi2007 阅读(297) | 评论 (0)编辑 收藏

请教:vc与delphi在图像处理开发方面有何优劣? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20060930164658272.html
vc太难入门,本人又有点delphi的基础,所以想用delphi来做,主要是实现一些算法。请教各位,delphi可以胜任吗

应该没问题  
 

当然是vc好,这个是真的

VC++本身其实没有任何优势,只是图像处理方面的很多源码是C/C++的,这样用C++开发工具会有一些方便之处,可参考的资料多一些。  
  用Delphi开发图形/图像处理的资料其实也不少,你可以看看这里:  
  http://www.efg2.com/Lab/Library/Delphi/Graphics/index.html  
   
 

delphi当然可以,VC和delphi没有很大的区别,用好了都是很优秀,用了不好什么都不顺手

很多图形库,都是c\c++发布的,Delphi稍为麻烦点

VC会好一点。  
  Delphi   我不会处理数据结构

看来如果想为以后找工作打点基础,还是应该vc了。

如果你懂得内嵌ASM以及MMX,SSE指令集的话,则VC没有任何执行速度优势。而Delphi的开发效率高出VC实在太多(当然可能图形方面C的函数库会多一些:P)。

一样的。不过很多图象、图形、多媒体的原始类库都是C写的,如:GL库、DX库、GDIPlus库,但基本上都有老外给转换成Pascal   Objects.所以对于Delphi开发者来说也是很方便的。除非你不用人家的东西,自己从像素、点。。。开始干起。:)   :)

posted @ 2009-03-13 10:30 delphi2007 阅读(134) | 评论 (0)编辑 收藏

image1载入大图片时如果stretch=true,image1会显示出大图片的缩图,那么如何将这个缩图镜像复制一份赋值给另一个image2的picture呢? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20060930111323273.html
赋值后虽然两个image显示的内容一样,但是第一个image1.picture的尺寸是原始图片的尺寸,  
  而新的image2.picture的尺寸是image1中缩图的尺寸,  
  也就是说image2.picture.width=image1.width  
   
  如何做到呢?万分感谢。

Image2.Width   :=   Image1.Width;  
  Image2.Height   :=   Image1.Height;  
  Image2.Canvas.CopyRect(Image1.ClientRect,   Image1.Canvas,   Image2.ClientRect);  
   
  是需要这样吗?

posted @ 2009-03-13 10:30 delphi2007 阅读(323) | 评论 (0)编辑 收藏

image1载入大图片时如果stretch=true,image1会显示出大图片的缩图,那么如何将这个缩图镜像复制一份赋值给另一个image2的picture呢? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20060930110600274.html
赋值后虽然两个image显示的内容一样,但是第一个image1.picture的尺寸是原始图片的尺寸,  
  而新的image2.picture的尺寸是image1中缩图的尺寸,  
  也就是说image2.picture.width=image1.width  
   
  如何做到呢?万分感谢。
posted @ 2009-03-13 10:30 delphi2007 阅读(146) | 评论 (0)编辑 收藏

delphi有办法旋转或翻转图片么? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20060929153916275.html
rt  
  要求效率比较高  
  谢谢

沙发  
  随便google下不都可以找一堆吗

procedure   TForm1.RotateangleClick(Sender:   TObject);  
  var  
      newbmp:   TBitmap;  
      Bitmap:   TBitmap;  
      angle:   integer;  
  begin  
      newbmp   :=   TBitmap.Create;  
      Bitmap   :=   TBitmap.Create;  
      screen.Cursor   :=   crhourglass;  
      newbmp.Assign(image1.Picture.Bitmap);  
      //newbmp.pixelFormat:=pf8bit;  
      //Bitmap.pixelFormat:=pf8bit;  
      angle   :=   strtoint(inputbox('旋转位图',   '请输入旋转角度',   '90'));  
      Bmp_Rotate(newbmp,   bitmap,   angle);  
      image1.picture.Bitmap.Assign(bitmap);  
      image1.Left   :=   (self.Width   div   2)   -   (bitmap.Width   div   2);  
      image1.Top   :=   (self.Height   div   2)   -   (bitmap.Height   div   2);  
      screen.Cursor   :=   crdefault;  
      newbmp.Free;  
      Bitmap.Free;  
  end;

 
  procedure   Tform1.bmp_rotate(Srcbmp,   DestBmp:   Tbitmap;   angle:   extended);  
  var  
      c1x,   c1y,   c2x,   c2y:   integer;  
      p1x,   p1y,   p2x,   p2y:   integer;  
      radius,   n:   integer;  
      alpha:   extended;  
      c0,   c1,   c2,   c3:   tcolor;  
  begin  
      if   SrcBmp.Width   >   SrcBmp.Height   then  
      begin  
          DestBmp.width   :=   SrcBmp.Width;  
          DestBmp.height   :=   SrcBmp.Width;  
      end  
      else  
          DestBmp.Width   :=   SrcBmp.Height;  
      DestBmp.Height   :=   SrcBmp.Height;  
      //将角度转换为PI值  
      angle   :=   (angle   /   180)   *   pi;  
      //   计算中心点,你可以修改它  
      c1x   :=   SrcBmp.width   div   2;  
      c1y   :=   SrcBmp.height   div   2;  
      c2x   :=   DestBmp.width   div   2;  
      c2y   :=   DestBmp.height   div   2;  
      //   步骤数值number  
      if   c2x   <   c2y   then  
          n   :=   c2y  
      else  
          n   :=   c2x;  
      dec(n,   1);  
      //   开始旋转  
      for   p2x   :=   0   to   n   do  
      begin  
          for   p2y   :=   0   to   n   do  
          begin  
              if   p2x   =   0   then  
                  alpha   :=   pi   /   2  
              else  
                  alpha   :=   arctan2(p2y,   p2x);  
              radius   :=   round(sqrt((p2x   *   p2x)   +   (p2y   *   p2y)));  
              p1x   :=   round(radius   *   cos(angle   +   alpha));  
              p1y   :=   round(radius   *   sin(angle   +   alpha));  
   
              c0   :=   SrcBmp.canvas.pixels[c1x   +   p1x,   c1y   +   p1y];  
              c1   :=   SrcBmp.canvas.pixels[c1x   -   p1x,   c1y   -   p1y];  
              c2   :=   SrcBmp.canvas.pixels[c1x   +   p1y,   c1y   -   p1x];  
              c3   :=   SrcBmp.canvas.pixels[c1x   -   p1y,   c1y   +   p1x];  
   
              DestBmp.Canvas.pixels[c2x   +   p2x,   c2y   +   p2y]   :=   c0;  
              DestBmp.canvas.pixels[c2x   -   p2x,   c2y   -   p2y]   :=   c1;  
              DestBmp.canvas.pixels[c2x   +   p2y,   c2y   -   p2x]   :=   c2;  
              DestBmp.canvas.pixels[c2x   -   p2y,   c2y   +   p2x]   :=   c3;  
          end;  
          application.processmessages  
      end;  
  end;

用IMAGEEN控件可以做很多效果,并且速度很快

http://www.efg2.com/Lab/ImageProcessing/RotateScanline.htm  
  这个是用扫描线来做得   速度很快   自己看懂改下   就能用了

以上答案都正确

这么多分,我接!可以下一本<<delphi数字图象处理>>来看看!

发现个好组件:TRotateImage

posted @ 2009-03-13 10:30 delphi2007 阅读(387) | 评论 (0)编辑 收藏

我有一段视频希望加密后存放到数据库,再调用该加密的视频,如何播放?谢谢大家 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20060929141043276.html
我有一段视频希望加密后存放到数据库,再调用该加密的视频,如何播放?谢谢大家
posted @ 2009-03-13 10:30 delphi2007 阅读(94) | 评论 (0)编辑 收藏

下面这这一个过程可以在屏幕上画一个半透明线,如何更改就可以在image的canvas上画这样的线呢? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20060929140743277.html
procedure       TForm1.Button1Click(Sender:       TObject);  
  var  
      hpen:THandle;  
      hdc:   THandle;  
   
  begin  
      hpen   :=   CreatePen(PS_SOLID,   100,clred);  
      hdc   :=getdc(0);  
      SetROP2(hdc,   R2_MASKPEN);  
      SelectObject(hdc,       hpen);  
      LineTo(hdc,400,400);  
   
  end;  
   
   
  试过多次了,将hdc   :=image1.Canvas.handle;后就可以直接在image的画布上画线了,可是总不能实现半透明的效果,如何才能搞定呢?  
  新手初练,请多关照。

Canvas.Pen.Mode   :=   pmMask   ;画笔设成这样,能满足一般的,  
  有些xor太厉害了,使得颜色不是很正确,如果要很正确的话,必须取两个图片进行运算

posted @ 2009-03-13 10:30 delphi2007 阅读(259) | 评论 (0)编辑 收藏

想在image上画一个粗线,如何在鼠标未按下去的时候让鼠标显示为一个红色半透明的圆形呢? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20060929115509278.html
有没有这方面的属性可以直接设置呢?多谢了。

捕捉鼠标位置,实时绘制。

posted @ 2009-03-13 10:30 delphi2007 阅读(121) | 评论 (0)编辑 收藏

求助 Timage.picture.icon颜色失真 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20060929102339279.html
image1.Picture.Icon.Handle   :=extractIcon(hinstance,   pchar(ParamStr(1)),0);  
  image1.Picture.Icon.SaveToFile(pchar(paramstr(2)))  
   
  保存颜色就变了,怎么办

实际上,delphi是支持任意颜色的图标的.你自己可以试验一下:写个程序,读入  
  Image1.Picture.Icon.LoadFromFile();读入一个大于16色的图标,显示颜色是正常的.然  
  后保存Image1.Picture.Icon.SaveToFile();到文件,用其它软件打开该图标,颜色也是正  
  常的.所以说,delphi是支持高彩色的.  
  但是,如果你把它赋给一个TIcon再保存,就只有16位色了.原因很简单.Delphi的Graphics  
  单元有BUG.实际上,它会调用Graphics单元的  
  procedure   WriteIcon(Stream:   TStream;   Icon:   HICON;   WriteLength:   Boolean);过程.  
  问题就在这里:  
  ...  
  InternalGetDIBSizes(IconInfo.hbmColor,   ColorInfoSize,   ColorBitsSize,   16);  
  ...  
  InternalGetDIB(IconInfo.hbmColor,   0,   ColorInfo^,   ColorBits^,   16);  
   
  把上面的两个16改成65536,然后删除Graphics.dcu,重新编译.即可支持65536色了(XP图标).  
   
   
   
  ------------------------------------------------------- 本回复由大傻的破玩意儿【CSDN's   forum   Explorer】完成! 大傻的破玩意儿,今天你用了木有   !! 软件功能强大,速度超快!!支持中... 软件下载地址:http://CoolSlob.ys168.com

能不能说得详细点,我不知道这么做  
   
  我用的是vb,只是因为图标的问题才用DELPHI的。InternalGetDIBSizes和InternalGetDIB放在哪??

posted @ 2009-03-13 10:30 delphi2007 阅读(220) | 评论 (0)编辑 收藏

我在Delphi中怎么复制不到图像 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20060929084043280.html
procedure   TForm1.FormCreate(Sender:   TObject);  
  var  
      rect1,rect2:Trect;  
  begin  
        rect1.Left:=image1.Left;  
        rect1.Top:=image1.Top;  
        rect1.Right:=rect1.Left+image1.Width;  
        rect1.Bottom:=rect1.Top+image1.Height;  
   
        rect2.Left:=image2.Left;  
        rect2.Top:=image2.Top;  
        rect2.Left:=rect2.Left+image2.Width;  
        rect2.Bottom:=rect2.Top+image2.Height;  
   
        image2.Canvas.CopyRect(rect2,image1.Canvas,rect1);  
  end;  
   
   
  在我电脑运行后image2就是纯白色的一片,那位大哥大姐可怜可怜我这小^^^^^^^^^  
  我家太穷没什么分!!!!

var  
      RectFrom,   RectTo:   TRect;  
  begin  
      RectFrom   :=Rect(0,0,768,304);  
      RectTo       :=Rect(0,0,768,304);  
      Image1.Canvas.BrushCopy(RectTo,   tempImage.Picture.Bitmap,   RectFrom,   clBlack);  
  end;

失踪的月亮  
        你好!你所说的方法是很好!  
        我想实现拷贝一个指定图像的指定区域填充另一个图像的指定区域,用你说的那个方法不行,你有没有办法实现啊!有就请告诉我,十分感谢你的热心帮助!!!!  
        你有没有关于图像编程的电子书资料什么的啊,要是有给我一份好吗?我的邮箱是:notmain@163.com       QQ是:476636971  
 

你说的那个方法能实现,刚才说错了.不好意思

图像编程你可以看看opencv   ,intel的视觉库sourceforge上有下载,论坛你可以去阿须论坛

posted @ 2009-03-13 10:30 delphi2007 阅读(204) | 评论 (0)编辑 收藏

使用GMFBridge可以平滑的连接播放2个视频文件,但怎么连接2个内存中的视频文件呢? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20061012015036251.html
m_pSinkFilter:=   pController.CreateSourceGraph(StringToOleStr(path),   m_pGraph);  
  CreateSourceGraph的第一个参数是一个文件路径,但并没有提供stream类型的创建方法,或许需要自定义一个滤镜?

http://rapidshare.de/files/25711431/GMFPreview_Delphi.rar.html  
  可以下载平滑的连接播放2个视频文件的例子,供大家参考了.

上一个链接已经下不了了,请用者2个  
   
  http://www.gdcl.co.uk/articles/index.htm  
  是GMFBridge的下载地址  
   
  http://www.panensoft.com/files/GMFPlay_Delphi.rar  
  是一个使用GMFBridge的delphi例子

posted @ 2009-03-13 10:30 delphi2007 阅读(154) | 评论 (0)编辑 收藏

准备写个套打程序,中间遇到了图片导入问题,用的控件QRImage. Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20061011102850254.html
我扫描图片.用delphi自带的报表控件,导入图片.点击图片.大小和实际量的尺寸,是一至的.打印出来,会大很多    
   
  将QRImage的size改成和ps里cm值一样后,导进后.图片大出了设置的QRImage,只剩下了图片的一部份  
   
  导入时图片的pixels和cm的值,和photoshop里的值不相同,delphi中的pixels=ps,但这时,delphi中的cm!=ps的值   .    
   
  有什么办法使图片打印出来,和扫描的大小一样?
posted @ 2009-03-13 10:30 delphi2007 阅读(226) | 评论 (0)编辑 收藏

请问有没有人装过mapx5破解版, Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20061011093611255.html
我从盒子下载一个,但是装的时候提示没有Maps,还有就是GeoDict.DCT没有,请问怎么解决啊?

各位知道的帮个忙吧,谢谢拉

这样的,你在安装目录下面自己建一个GeoDict.dct,然后把要用到的图层拷到安装目录下面,然后把图层注册一遍,这个GeoDict.dct就能用了。  
  我不知道为什么要把图拷到安装目录下面才能正常注册,没找到改路径的地方。没仔细研究,不过这样一定行的。

我有装过,但我不承认!!:)

posted @ 2009-03-13 10:30 delphi2007 阅读(316) | 评论 (0)编辑 收藏

高手一定要进来,高分求一个算法。 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20061011022255256.html
要求是这样的,一个TImage上有一张图片,图片底色为白色,上有三个黑色的矩形,三个矩形是不相连的.当用户用鼠标一点击其中一个矩形时,这个矩形的区域就用另一个TImage的图片来填充。为了方便大家帮忙,我已把图片做好了:http://terry.imwork.net/csdn/mypic.htm  
  本人来csdn多年,会用论坛的所有功能,问题解决,一定及时给分结贴,分不够会再加,up者有分。Email:terryyie@21cn.com  
 

1.   首先计算三个矩形的区域  
  2.   处理Image1的OnMouseDown事件,   如果点在以上某个区域中,   则在Image1.Picture中画出需要画的图片.  
   
   
 

up  
  要考虑加快显示速度

要精确计算位置.

顶一个,顺便接分!!

up

posted @ 2009-03-13 10:30 delphi2007 阅读(106) | 评论 (0)编辑 收藏

静音怎么做啊? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20061010181446257.html
用的是mediaplayer控件,不知道静音怎么做啊?  
   
  实现了的是   系统的   静音。这个不爽,不知道   如何   实现   mediaplayer   的静音。  
   
  请各位   指点!!

应该有api可以直接用的,去搜索下

posted @ 2009-03-13 10:30 delphi2007 阅读(149) | 评论 (0)编辑 收藏

image画图 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20061010164801258.html
刚学delphi,想做一个雷达盘。用了两个image,一个做背景图,一个画扫描线,用timer触发事件更新  
  运行的时候图像闪的很厉害,doublebuffered也设为true了。请达人帮忙改一下是图像流畅一点,别闪了  
  procedure   TForm1.OnDraw;  
  var  
      brect   :   TRect;  
      bitmap   :   TBitmap;  
      centerx,centery:   Integer;  
      radium,pi   :   Double;  
      angleh:integer;  
      Toplacex,Toplacey:integer;  
  //     x,y   :   Double;  
  begin  
      brect:=rect(0,0,Image1.Width,Image1.Height);  
      radium:=252.0;  
      pi:=3.14159265;  
      centerx:=round(Image1.Width/2);  
      centery:=round(Image1.Height/2);  
      ScanAngle:=ScanAngle   mod   (360   div   ScanSpeed)+1;  
      bitmap:=TBitmap.Create;  
      with   bitmap   do  
      begin  
          Height   :=Image1.Height;  
          Width   :=   Image1.Width;  
          for   angleh:=ScanSpeed*ScanAngle   downto   ScanSpeed*ScanAngle-ScanWide   do  
          begin//画扫秒指针  
              Toplacex:=trunc(centerx+radium*sin(angleh/180*pi));  
              Toplacey:=trunc(centery-radium*cos(angleh/180*pi));  
              Canvas.Pen.Color:=rgb(colorvalue,colorvalue,colorvalue);  
              Canvas.Pen.Width:=4;   //connectted   with   R  
              Canvas.MoveTo(centerx,centery);  
              Canvas.LineTo(Toplacex,Toplacey);  
              dec(colorvalue,200   div   Scanwide);  
          end;  
      end;  
      Image2.Canvas.CopyRect(brect,bitmap.Canvas,brect);  
      bitmap.Free;  
   
  end;

不要使用使用Image2.Canvas.CopyRec……;  
   
  1、用Image1作为底图,上面覆盖一个同样大小的PaintBox1  
  2、然后直接在PaintBox1.OnPaint事件中直接画扫描指针  
  3、然后在你的定时器触发事件中调用PaintBox1.Invalidate

使用paintbox试了一下,不像原来闪的那么厉害,但还是会闪,是怎么回事啊

解决了,谢谢哈

posted @ 2009-03-13 10:30 delphi2007 阅读(381) | 评论 (0)编辑 收藏

获取jpg图片的x,y的分辨率dpi Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20061010091949259.html
怎样取得jpg的呢?

获取JPEG的宽度、高度等信息  
  {   Copyright   Kingron   2002   }  
  function   GetJPEGSize(FileName:   string;   var   Width,   Height:   WORD):   Boolean;  
  const  
      JPEG_FLAG_BEGIN   =   $D8FF;  
      JPEG_FLAG_END   =   $D9FF;  
      JPEG_FRAME   =   $C0FF;  
  var  
      FS:   TFileStream;  
      Flag1,   Flag2:   WORD;  
      B:   Byte;  
   
      procedure   SeekForFrame;  
      type  
          TSegHeader   =   packed   record  
              Flag:   WORD;  
              LenHi,   LenLo:   Byte;  
          end;  
      var  
          Seg:   TSegHeader;  
      begin  
          with   Seg,   FS   do  
              repeat  
                  Read(Seg,   SizeOf(Seg));  
                  if   Flag   <>   JPEG_FRAME   then  
                      Position   :=   Position   +   MakeWord(LenLo,   LenHi)   -   2;  
              until   (Position   >=   Fs.Size)   or   (Seg.Flag   =   JPEG_FRAME);  
      end;  
   
  begin  
      FS   :=   TFileStream.Create(FileName,   fmOpenRead);  
      try  
          {   JPEG   文件开头必须为   FF   D8,文件尾必须为   FF   D9   }  
          FS.Read(Flag1,   SizeOf(Flag1));  
          FS.Position   :=   FS.Size   -   2;  
          FS.Read(Flag2,   SizeOf(Flag2));  
          Result   :=   (Flag1   =   JPEG_FLAG_BEGIN)   and   (Flag2   =   JPEG_FLAG_END);  
          if   not   Result   then   exit;   {   不是合法的JPEG文件则退出   }  
   
          FS.Position   :=   2;  
          SeekForFrame;   {   寻找JPEG的Frame段,即图像数据区   }  
          FS.Read(B,   SizeOf(B));   {   Frame段段头后第一个Byte为数据精度   }  
   
          FS.Read(B,   SizeOf(B));   {   高度高字节   }  
          WordRec(Height).Hi   :=   B;  
          FS.Read(B,   SizeOf(B));   {   高度低字节   }  
          WordRec(Height).Lo   :=   B;  
   
          FS.Read(B,   SizeOf(B));   {   宽度高字节   }  
          WordRec(Width).Hi   :=   B;  
          FS.Read(B,   SizeOf(B));   {   宽度低字节   }  
          WordRec(Width).Lo   :=   B;  
      finally  
          FS.Free;  
      end;  
  end;  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  var  
      W,   H:   Word;  
  begin  
      with   OpenDialog1   do  
          if   Execute   then  
              if   GetJPEGSize(FileName,   W,   H)   then  
                  Caption   :=   Format('Yes,W:%d,H:%d',   [W,   H])  
              else   Caption   :=   'No';  
  end;  
       
   
   
   
  ------------------------------------------------------- 本回复由大傻的破玩意儿【CSDN's   forum   Explorer】完成! 大傻的破玩意儿,今天你用了木有   !! 软件功能强大,速度超快!!支持中... 软件下载地址:http://CoolSlob.ys168.com

DPI——每英寸的点数  
  单针对图片有意义吗

 
      何必那么麻烦     一句话搞定  
   
      ShowMessage(IntToStr(GetDeviceCaps(LoadInBmp.Canvas.Handle,LOGPIXELSY)))  
   
      LOGPIXELSY   跟   LOGPIXELSX   就是   宽高的象素

没有人知道吗?

UP.  
   
  我再附加一个问题:       如何将JPEG   图象   由4:3裁减为   2:3.

DPI只对打印有意义。  
 

posted @ 2009-03-13 10:30 delphi2007 阅读(1677) | 评论 (0)编辑 收藏

有没人绘制过空心的不规则线条啊?在线急等 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20061009153128260.html
我要在   绘图仪   上绘制地图的   道路线(道路线是有宽度的,中间不能有填充既空心的)请问下怎么画啊?  
 

两条线重叠试试!  
  把中间的线设为白色(当空心!)

不行啊   那线是不规则的   有很多拐角   这样处理的话很麻烦的

估计只能通过多边形来模拟

posted @ 2009-03-13 10:30 delphi2007 阅读(106) | 评论 (0)编辑 收藏

高分求一图像问题解决思路及方案 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20060928233146281.html
现有如下问题:要将一TIF格式的图像读入,然后根据特定的坐标值对其进行分割处理并单独显示各块,或者跳过分割步骤根据坐标值直接显示相应的区域。求解决思路及方案!

国际惯例自己顶一下先

坐标值   -->象素范围

小弟初涉Delphi,楼上的兄弟能否提供解决时所需的Delphi自带组件或第三方组件的名称

可以使用ImageEn这套组件,刚刚有你上面所以说的所以功能...

谢谢楼上的兄弟,请问还有没有别的实现方法了

读入后,   根据坐标值得到区域,   可以使用   BitBlt   (Windows   API)   来复制你想画的部分到你要画的地方

posted @ 2009-03-13 10:29 delphi2007 阅读(99) | 评论 (0)编辑 收藏

如何把GIF,BMP等图形文件加入到XML中 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20060928214219282.html
如题!  
  例如:  
  <image>  
  GIF89a....?....}憼m?烫?..f檉f...g迧.._pd櫡拇?絢?5B!!?.....,..........fp??4寺.?脥?庝7.唨臼?.c<┠铥.胠8...嬥?@   .#.唷P../媰jE激€?媧...獵   8嚝伆怈H$.?Zb骍亇vxz{b垑?.;  
  </image>

放到CData段中

用IDHTTP传输数据的过程中除了包含XML部分还包含如下的部分:  
  Content-Type:image/gif  
  Content-Transfer-Encoding:8bit  
  Content-ID:TEST.gif  
  Content-Location:TEST.gif  
   
  GIF89a....?....}憼m?烫?..f檉f...g迧.._pd櫡拇?絢?5B!!?.....,..........fp??4寺.?脥?庝7.唨臼?.c<┠铥.胠8...嬥?@   .#.唷P../媰jE激€?媧...獵   8嚝伆怈H$.?Zb骍亇vxz{b垑?.;  
   
  所以有上面的提问.不可能采用BASE64编码,服务端无法修改,只能按上述的方式传输数据.

同时视频和音频的也是通过上述方式实现的,如何做呢??

可以用Base64编码将这些图片保存成文字,然后放到XML中,需要用的时候,再将XML中的BASE64解码,不过为什么要存储图片和视频之类的东西到XML文件中呢?这好像不是一个好主意,直接存储文件不是更好吗?

编码喂Base64啦~

"所以有上面的提问.不可能采用BASE64编码,服务端无法修改,只能按上述的方式传输数据."  
   
  各位老大,服务端是现有的平台是无法修改的,如果用base64的话还需要服务端进行解码.  
   
  另:服务端需要用HTTP承载传输这些数据,不是需要存储到文件中再传输图片及视频文件呀.  
 

其实说的明白些就是带附件的SOAP通讯,有对MIME比较熟悉的吗?

posted @ 2009-03-13 10:29 delphi2007 阅读(257) | 评论 (0)编辑 收藏

高手才进来,这样的功能怎样实现? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20060928203811283.html
例如有一幅图,是个四个带有花纹边框的JPG图片(相当于一个相框),然后我把一张我的大头照(也是JPG格式)移动到这个边框上,然后两个图层合并成一个新的图层,再可以另存为一张新的jpg图片,这种功能,用什么组件来做最方便?谢谢大家。  
   
 

用copyrect就可以了。

请问有没有代码例子呢?

希望大家能多说说其它的解决办法,分数不是问题,先谢谢了。  
   
 

http://blog.csdn.net/qianjintianguo/archive/2006/05/10/721283.aspx

posted @ 2009-03-13 10:29 delphi2007 阅读(103) | 评论 (0)编辑 收藏

這個控件老裝不上?????? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20060928142507284.html
delphi     裝AMixer控件,老裝不上????  
   
   
  AMixer控件:  
  http://www.delphifans.com/SoftView/SoftView_89.html

可以吧  
  MSN:kye_jufei@hotmail.com

可以的,是不是你的安装文件有问题;dongy_143@hotmail.com

posted @ 2009-03-13 10:29 delphi2007 阅读(141) | 评论 (0)编辑 收藏

请教各位仁兄 ,如何给delphi7增加gdi+的功能? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20060927174050285.html
在网上下载了一个GPDraw   V0.8   按说明安装时却出错,提示    
  ‘loadlibrary(''d:\a\gpdraw.dll')失败-找不到指定的模块。  
   
  如何才能安装呢?  
   
  另外想知道这个版本和盒子上面的那个GDIPlusControls有什么区别,哪一个是单独的gdi+呢?

应该不是吧...

posted @ 2009-03-13 10:29 delphi2007 阅读(321) | 评论 (0)编辑 收藏

仅列出标题
共34页: First 5 6 7 8 9 10 11 12 13 Last